我在 MacBook 上的 Xcode 中编写 C++ 代码时遇到了一些奇怪的问题。我知道代码没有错误,因为我让 Windows 用户运行它时没有任何问题,但不知何故,我得到的输出在大多数情况下与输入不匹配。我试图重新安装 Xcode 无济于事。这是我正在运行的代码:
#include <string>
#include <iostream>
int main() {
std::string test = "";
while (std::cin >> test) {
std::cout << test << "\n";
}
return 0;
}
我在 Xcode 中使用控制台来提供用户输入,下面是我得到的一些输出示例:
输入:1+(2+2)
输出:1+()2+2
输入:2*(-(8/2))
输出:2*()()-8/2
评论:方框显示某种类型的问号符号,但看起来粘贴到这里时不会显示。
任何帮助将不胜感激。
您对光标键的评论澄清了这个问题。
通常 C/C++ 运行时 stdio 库依赖于系统的终端实现来处理像游标这样的特殊键,因此程序将接收所谓的“熟”终端输入,其中所有的怪异都被过滤掉了。
不幸的是,XCode 中的控制台窗口不是一个合适的终端,有些东西会通过。
这是 XCode 及其控制台窗口特有的东西。当编译的程序从普通终端窗口运行时,它不应该发生。在那里按下光标会在屏幕上生成一些奇怪的字符,但它们不会到达 std::cin。