我试图了解回车符(\ r)。所以我写了下面的代码。如果我运行以下代码,则输出为“ go”。
方法1:
#include <stdio.h>
int main()
{
printf("chi\rca\rgo");
return 0;
}
但是,如果我尝试使用“ \ n”,那么我将获得输出“ goi”。
方法2:
#include <stdio.h>
int main()
{
printf("chi\rca\rgo\n");
return 0;
}
这是什么错误?
谁能帮我吗?
答案 0 :(得分:1)
在两种情况下,您都应该获得“ goi”。您可以here对其进行测试。
回车实际上就是这样-它返回回车,即返回到行首。
因此,当您打印“ chi \ rca \ rgo”时,这将在输出中发生:
==============================
| 1. | print "chi" | chi |
==============================
| 2. | carriage return | chi |
==============================
| 3. | print "ca" | cai |
==============================
| 4. | carriage return | cai |
==============================
| 5. | print "go" | goi |
==============================
在输出末尾添加\n
不会改变该行为。但是,终端通常是行缓冲的,这意味着换行符的行为类似于刷新。可能是在第一种情况下您只会看到“ go”,因为没有换行符,终端还没有为该行打印所有字符。