我尝试研究转义序列所以我测试 我想 将光标移动到行首
我要打印
hello
\r wokring \t working \n working
所以我在 Visual Studio 2022 中输入此代码
#include <iostream>
int main(void)
{
std::cout << "hello \n \\n working \r \\r working \t \\t working" << std::endl;
return 0;
}
但是打印了
hello
\r_working \t working
像这样
并在网络编译器中打印这个
hello
\n working \r working \t working
为什么会这样?或者我对此有什么误解?
\r
是回车符(又名 CR)。\n
是新行字符(又名 LF / 换行)。
正如那里所解释的,这在历史上总是有点混乱,这也是 C++ 拥有标准化
std::endl
的原因。
我们可以计算出你的字符串来弄清楚发生了什么:
hello \n \\n working \r \\r working \t \\t working
Hello
,然后进入下一行。\n working
,然后返回到行首。\r working
,然后是tab
,然后是\t working
,但所有这些都会覆盖\n working
(因为我们回到了行的开头)。我怀疑你的网络编译器不能在 Windows 上运行,因此结果不同。