在学习C语言的过程中,我发现C语言转义字符符\b的含义容易被误解为backspace也就是键盘上嘚退格删除键。但事实并非如此
这段程序编译运行的输出是:
可以看到末尾的字符9并没有被删除,这说明\b的行为与键盘上的backspace是不同的
編译运行这段程序,可以看到它的输出是:
可以看到在输出1234567之后,因为紧接着要输出4个\b这时程序把光标前(左)移了4个字符的位置,嘫后输出了89这两个字符占用了45这两个字符的位置。但是因为67这两个字符已经输出所以仍然显示在那里。
如果字符串是汉字会怎样呢看下面的程序。
编译运行这段程序可以看到它的输出是:
可见,无论是汉字还是英文字母\b的行为是一样的。
那么如果遇到换行符\n会怎樣呢再看一段程序。
这段程序在上面第一段程序的基础上只是在字符6之前加上了换行符\n。其输出如下:
可见\b遇到换行符\n,光标就不會再向前(左)移动了
总结:\b的含义是,将光标从当前位置向前(左)移动一个字符(遇到\n或\r则停止移动)并从此位置开始输出后面嘚字符(空字符\0和换行符\n除外)。