你好:
有关printf函数中的\r的使用问题:为何如下的两句printf,但输出却有所不同呢
printf("\tfirst\b\b\bsh\\\r\'No.1\'\n");
printf("12345\b123\r9\n");
输出的结果是: ‘No.1' fish\
和:9234123
我问题是:为何第一行没把前面的字符如fish删掉,而第二行却把12345中的1删掉,取而代之是9呢,你帮个忙,我是个新手。
\r表示回车,回车后第一行在空白位置,而第二行在12345的1位置处,所以用9要覆盖掉1。
我也不知道说清楚没,自己可以查查书。
运行结果当然是对的了!!!
上面先运行\t 表示光标先向前运行一个tab位,即前进8个空格,结果为“ ”
然后打印出first在运行\b\b\b打印sh\结果为“ firsh”当遇到“\r "时返回到本行的最前面,然后打印‘NO.1’最终结果即为‘No.1' fish\
c语言中“\r” 的作用是返回到本行的开头如果再有字符需打印则从开头向后面覆盖字符或空格
小弟在此谢谢你们的答复,特别是双云,太详细了,我一看就明白了,只是我太粗心了,没看出来原来还有一个\t呢,再次谢谢你们两位。