Xcode 控制台输入与输出 C++ 不匹配

Xcode 控制台输入与输出 C++ 不匹配

我在 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

评论:这些框中显示了某种问号符号,但看起来粘贴到这里时不会显示。

任何帮助将不胜感激。

答案1

您关于光标键的评论澄清了这个问题。
通常,C/C++ 运行时 stdio 库依赖于系统的终端实现来处理光标等特殊键,因此程序将接收所谓的“经过处理的”终端输入,其中所有奇怪的东西都被过滤掉了。
不幸的是,XCode 中的控制台窗口不是一个合适的终端,有些东西会通过。
这是 XCode 及其控制台窗口特有的东西。当编译后的程序从普通终端窗口运行时,不应该发生这种情况。按下那里的光标会在屏幕上生成一些奇怪的字符,但它们不会到达 std::cin。

相关内容