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