3
printf("Hello%cWorld\n", '\r');

输出:

World

因为'\r'将光标移动到行首

我可以相信所有终端都有这种行为吗?

4

2 回答 2

1

lib curses 会告诉您终端的功能。

于 2013-05-17T16:26:22.843 回答
0

ASCII 编码中的 .0x0d 是 '\r',在这种情况下

printf("Hello%cWorld\n", 0x0d);

等于

printf("Hello\rWorld\n");

一个常见的 C 编程错误是假设使用了一种特定的编码,而实际上另一种编码是成立的。

但是,正如@Joachim Pileborg 所说,它适用于大多数计算机。

但是我建议使用 '\r' 而不是 0x0d,以实现可移植性,而后者看起来像一个神奇的数字,这会让阅读您代码的其他人甚至您自己有一天也会感到困惑。

于 2013-05-17T07:01:47.730 回答