遇到這麼乙個問題:
想從鍵盤輸入一行字串,然後輸出到終端,不使用qt
方法一:
std::string mywords;
std::cin >> mywords;
std::cout << mywords << std::endl;
執行程式,在介面輸入 i create a new virtual world!
回車,介面輸出 i
問題來了,後面的一串字元去哪了?
答: cin 遇空格停止識別,雖然輸入很長一串字元,但是cin在第乙個遇到第乙個空格就停止輸入,所以,cin只把 i 寫入mywords
所以,方法一不正確。正確方法見方法二:
方法二:
std::string mywords;
std::getline(std::cin, mywords, '\n');
std::cout << mywords << std::endl;
執行程式,在介面輸入 i create a new virtual world!
回車,介面輸出 i create a new virtual world! 完全正確。
思考:為什麼會這樣?
cin 遇空格或換行,會停止識別,如果你打算輸入的字串中帶1個或多個空格,則採用getline把停止識別的符號設定為『\n』(即換行符),就能正確輸入輸出了。
cin讀入string物件
cin 1.cin 1.以空格,回車,換行分隔 2.如果第乙個為上述 分隔符 cin會自動忽略並清除,等待資料繼續輸入 3.cin noskipws input可以不略過空白字元 2.cin.get a.讀取乙個字元 a cin.get cin.get a 不忽略分隔符 b.讀取一整行 cin.ge...
cin輸入空格
cin是c 程式語言互換流中的標準輸入流,是istream類的物件,是計算機輸入的一種手段,它需要iostream.h支援。cin從標準輸入裝置 鍵盤 獲取資料,程式中的變數通過流提取符 從流中提取資料。流提取符 從流中提取資料時跳過輸入流中的空格 tab鍵 換行符等空白字元。注意 只有在輸入完資料...
C 輸入cin詳解
輸入原理 程式的輸入都建有乙個緩衝區,即輸入緩衝區。一次輸入過程是這樣的,當一次鍵盤輸入結束時會將輸入的資料存入輸入緩衝區,而cin函式直接從輸入緩衝區中取資料。正因為cin函式是直接從緩衝區取資料的,所以有時候當緩衝區中有殘留資料時,cin函式會直接取得這些殘留資料而不會請求鍵盤輸入 1 incl...