【问题标题】:Why does g++ compiled file end with a % sign?为什么 g++ 编译的文件以 % 符号结尾?
【发布时间】:2021-03-30 12:18:27
【问题描述】:
#include <iostream>

int main()
{
    std::cout << "Hello";
}

我使用 g++ Hello.cpp 编译它 当我使用 ./a.out 运行编译后的 a.out 文件时,我收到了以下输出

为什么我总是在输出末尾得到一个 % 符号?

./a.out
Hello%  

【问题讨论】:

  • 这很可能是您的终端将空终止符呈现为的内容。您可以轻松地对此进行测试。
  • 您的终端提示符(${PS1} 或类似的)是否设置为% ?你试过std::cout &lt;&lt; "Hello\n";
  • 在 C shell 中,提示以百分号 (%) 结束。你能告诉echo $SHELL的输出吗?
  • 因为你没有用换行符结束你的输出。与 C++ 无关,这只是您的操作系统的工作方式。
  • 感谢您的回答!你们都真的有帮助!我只是 C++ 的新手

标签: c++ macos terminal


【解决方案1】:

您看到的% 实际上可能是您的shell 提示符,而不是您的程序输出的一部分。您没有在输出后写新行,因此 shell 提示符出现在最后一个命令的输出的最后。

可能的解决方案:

  • 使用 + "\n" 在输出末尾添加换行符。
  • 在输出末尾添加std::endl

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 2015-11-14
    • 2015-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多