转义字符使用的小问题(谭浩强c语言p49)
我是在虚拟机里面的red flag linux里面的kate和终端里面编译的
printf(" ab c\t de\rf\tg\n");这句的输出结果是
fab c gde;而不是
f gde;
但是书中讲的是应该按照下面的那种结果输出,也就是abc被覆盖掉了
所以我想问大家:
1.上面结果如何解释(我输出的事第1种而不是第2种)
2.编译器对于tab所经过的字符是跳过,让它原地不动,还是把它推后(我目前是这样的),还是把他覆盖?
我自己的编译器用tab的时候是把字符推后,但是上面的内容并没有把字符推后,也没有覆盖,不知为何?
[解决办法]
不是编译器的差别,差别在于终端。
[解决办法]
stty -tabs
输出就是
f gde
stty tabs
输出就是
fab c gde
[解决办法]
\r 回车符,在终端表示将光标移到当前行首,下一字符将从行首开始写,覆盖掉之前的字符。
[解决办法]