printf("\tfirst\b\b\bsh\\\r\'No.1\'\n");
printf("1\n2\n");
printf("\tfirst\b\b\bsh\\\r");
printf("1\n2\n");
输出结果是:
'No.1' fish\
1
2
1 fish\
2
分析:
转义字符\
\t 输出制表符相当于tab键;\b 退一个,相当于Backspace键;\r回到行首输出,相当于home,return
注意:
虽然回到了行首,接着有了\n; \n与在行首进行回车不一样,它只是在这行进行了换行。\n相当于换行。
printf("\tfirst\b\b\bsh\\\r\'No.1\'\n");
结果是 ''No.1'
\r\n, \n
\r 是回车,return
\n 是换行,newline
我们在平时使用电脑时,已经习惯了回车和换行一次搞定,敲一个回车键,即是回车,又是换行,但在早期的打字机上,要另起一行打字需要两个步骤,首先要发送命令"\r”将打字头复位,即回车,然后再发送命令"\n”让打字机走纸移到下一行,所以这个历史遗留问题导致了如今我们在DOS-Windows的系统里需要区分"\r\n”和“\n”,但在Unix中只有"\n”。
用UltraEdit打开文本查看,会看到换行处显示的是0x0D0A,0x0D即"\r”,0x0A即"\n”。
有时候在文本文件中出现■这样的符号,是因为没有"\r\n"连用,导致不能正确回车换行。
在C中读取文本时,"\r\n”已自动转成"\n”。
回车 = 光标到达最左侧 = \r = return
换行 = 移到下一行 = \n = NL = newline
如果只回车\r,打印的东西会覆盖同行以前的内容
如果只换行\n,打印的东西会在下一行的先一个位置继续,比如
==========
#########