\ r,\n,\ b如何在此程序中运行

Sha*_*iya -2 c gcc escaping

任何人都可以告诉我如何得到输出:hai为以下代码?

   int main()
   {
   printf("\nab");
   printf("\bsi");
   printf("\rha");
   return 0;
   }
Run Code Online (Sandbox Code Playgroud)

Don*_*ild 6

他们应该工作!

\n=>换行符,转到同一列中的垂直下一个位置
\b=> BackSpace,向后转到一个位置
\r=>回车符,与键盘中的Home键相同

精心解释:

\r:

将光标移动到同一行中的Home位置.

\b:

如果不在Home位置,将光标向后移动一个位置在同一行上.

\n:

编辑(interjay建议):根据C标准,无论平台如何,都应将光标移动到下一行的Home位置.

首先输出printf:

ab

第二次输出printf:

asi

第三次输出printf:

hai

  • @ A4L和0xF1:我知道它被翻译了.这就是为什么你所说的(关于`\n`留在同一列中)是错误的,除非你写的是二进制文件(这不是这里的情况).你在这里混淆了两个不同的东西(C中控制字符的含义,以及Windows中控制字符的含义).这里只有C的意义才是重要的. (2认同)