我正在做一个基本的C教程。在一个例子中,这段代码用于引入转义序列:
#include <stdio.h>
int main()
{
printf("This is a \"sample text\"\n");
printf("\tMore text\n");
printf("This is getting overwritten\r");
printf("By this, another sample text\n");
printf("The spa \bce is removed.\n");
return 0;
}
控制台输出预计如下所示:
This is a "sample text"
More text
By this, another sample text
The space is removed.
相反,我明白了:
This is a "sample text"
More text
This is getting overwritten
By this, another sample text
The spa ce is removed.
我在Windows上使用Eclipse Cpp Oxygen和Cygwin工具链来编译和运行代码。我不知道自己做错了什么,我以为我会在这里寻求帮助。
答案 0 :(得分:0)
Eclipse内置的控制台不支持\r
,\b
(和\f
)个字符。
有一个长期存在的错误76936,已经开放了14年。但看起来并不固定。
答案 1 :(得分:-1)
在linux中,您的示例与您期望的完全一样。可能在windows中,\ r被认为是\ n。 而不是在linux终端上\ r \ n将(正确)光标放在该行的第一个字符上。