我使用的是Manjaro Linux,发行版=22.0.0,GNOME 43.1,内核5.19.17-2,我使用的是zsh。
我决定学习C++,但我遇到了一个问题。如果我在输出到控制台时不添加std::endl
,就会添加符号“%”。
参见随附的屏幕截图。
代码1:
#include <iostream>
int main()
{
int age;
age = 28;
std::cout << "Age = " << age;
return 0;
}
代码2:
#include <iostream>
int main()
{
int age;
age = 28;
std::cout << "Age = " << age << std::endl;
return 0;
}
为什么会发生这种情况?我所尝试的只是添加std::endl
。我想知道为什么要添加“%”符号。
2条答案
按热度按时间wr98u20j1#
啊,你漏了最后一个换行符。
因此,您的shell * 应该 *(这是否与您的程序在输出中实际生成的内容非常相符)在输出的同一行上显示提示符。
这样看起来会很糟糕,也很混乱,所以,你的shell插入了一个特殊的字符和一个特殊的背景颜色来标记“嘿,这不是程序的输出,但我还是在这里插入了一个换行符,因为我不讨厌你,亲爱的用户”。
这个百分比符号不是来自你的程序,而是你的shell试图让它变得有意义。
fslejnso2#
从 zsh 的 手册 页 :
当 保留 部分 行 时 , 默认 情况 下 , 您 将 在 部分 行 的 末尾 看到 一 个 反 + 粗体 字符 :
%
代表 一般 使用 者 ,#
代表 root 使用 者 。 如果 设定 , shell 参数 PROMPT _ EOL _ MARK 可 用来 自 订 部分 行 结尾 的 显示 方式 。