我有以下示例
#include <stdio.h>
#include<conio.h>
void main()
{
printf("\nab");
printf("\bsi");
printf("\rha");
_getch();
}
首先,我不明白 printf 函数是如何工作的。我一直在尝试找到解释这一点的教程,但它们太基础了。
理解这一点的方法是有一个光标读取输入中的每个字符。例如,如果我们只有一行:
printf("\bsi")
凭直觉,我认为它只是输出字符串 si,因为 si 之前没有先前的字符,但输出是 i。我还想补充一点,\b 考虑了另一个 printf 的输入,这很奇怪。
我还认为所有这些 printf 都相当于一个 printf。像这样的东西:
printf("\nab\bsi\rha");
这让我觉得铁窗后面正在发生一些我无法真正解释或说出它是什么的事情。我认为这与输入上的某个指针有关,或者 printf 将输入存储在缓冲区中并以某种方式读取它。
有人能详细解释一下 printf 的工作原理吗?
...
问题有点不同,因为我知道这是同一个练习,但我对此有不同的看法并以不同的方式处理它。
最佳答案
关于有人可以解释\n、\b、\r 在 C 中的行为吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43199647/