有人可以解释\ n,\ b,\ r在C中的表现如何?

时间:2017-04-04 06:17:59

标签: c

我有以下示例

 #include <stdio.h>
    #include<conio.h>

    void main()
    {
        printf("\nab");
        printf("\bsi");
        printf("\rha");
        _getch();
    }

首先,我不了解printf功能的工作原理。我一直试图找到解释这一点的教程,但它们太基础了。

理解这一点的方法是有一个游标可以读取输入中的每个字符。例如,如果我们只有这一行:

printf("\bsi")
凭直觉我会认为它只是输出字符串si,因为在si之前没有先前的字符,但是输出是i。我还想补充一点\ b考虑到另一个非常奇怪的printf的输入。

我还认为所有那些printfs都只相当于一个printf。类似的东西:

printf("\nab\bsi\rha");

这让我觉得酒吧背后有什么东西我无法解释或告诉它是什么。我认为它与输入或printf上的某些指针相关的东西将输入存储在缓冲区中并以某种方式读取它。

有人可以解释一下printf的详细信息吗?

...

问题有点不同,因为我知道它是相同的练习,但我对它有不同的看法并以不同的方式处理它。

1 个答案:

答案 0 :(得分:0)

转义序列

enter image description here

转义序列用于表示字符串文字和字符文字中的某些特殊字符。 上述转义序列是可用的(额外转义序列可以提供实现定义的语义):