当前位置: 代码迷 >> C语言 >> 求助printf问题
  详细解决方案

求助printf问题

热度:262   发布时间:2004-12-10 17:52:00.0
求助printf问题

你好:

  有关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呢,你帮个忙,我是个新手。

搜索更多相关的解决方案: printf  

----------------解决方案--------------------------------------------------------

\r表示回车,回车后第一行在空白位置,而第二行在12345的1位置处,所以用9要覆盖掉1。

我也不知道说清楚没,自己可以查查书。


----------------解决方案--------------------------------------------------------

运行结果当然是对的了!!!

printf("\tfirst\b\b\bsh\\\r\'No.1\'\n");

上面先运行\t 表示光标先向前运行一个tab位,即前进8个空格,结果为“ ”

然后打印出first在运行\b\b\b打印sh\结果为“ firsh”当遇到“\r "时返回到本行的最前面,然后打印‘NO.1’最终结果即为‘No.1' fish\

c语言中“\r” 的作用是返回到本行的开头如果再有字符需打印则从开头向后面覆盖字符或空格


----------------解决方案--------------------------------------------------------

小弟在此谢谢你们的答复,特别是双云,太详细了,我一看就明白了,只是我太粗心了,没看出来原来还有一个\t呢,再次谢谢你们两位。


----------------解决方案--------------------------------------------------------
不客气,不客气
----------------解决方案--------------------------------------------------------
  相关解决方案