使用 cin 輸入 string 物件

2021-09-10 16:56:55 字數 684 閱讀 9888

遇到這麼乙個問題:

想從鍵盤輸入一行字串,然後輸出到終端,不使用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...