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 には届きません。

関連情報