“回车”返回不同的输出

时间:2018-09-03 10:31:27

标签: c linux

我试图了解回车符(\ 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;
}

这是什么错误?
谁能帮我吗?

1 个答案:

答案 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”,因为没有换行符,终端还没有为该行打印所有字符。