c++中的字串讀入我們通常是用 cin>>str; 它只要碰到空格或者換行符就意味著本字串讀取結束,且不會讀取空格和換行符(相當於叢輸入流中丟掉)。
而getline函式讀取一行字串,可以讀入空格,遇到換行符結束(從輸入流中丟掉該換行符),且緊跟後續的getline不會讀取到該換行符。但是,注意一點就是:如果唯讀入了乙個換行符(敲了回車),這個換行符雖然不會被讀入,但是它會被當作結束符,這個時候什麼也沒有讀入。
#include
#include
using
namespace std;
intmain()
輸入輸出:
zyhz
lczyhz
lcempty
唉,有時候可能會遇到這樣的oj題目,先讀入乙個整數,再讀入若干行帶有空格的字串。
其實學c的時候就碰到過類似的問題,不過後來很長時間沒遇到了,也很少再用scanf,printf,gets之類的函式。
再次碰到輸入問題的時候,很是慚愧,好多地方都出了差錯。
第一次,我竟然想用cin>>string去讀取帶有空格的字串,可笑!!!
第二次,我把gets()和getline()混用,出現了意想不到的錯誤,應該是輸入流方式的不同造成的。
以後再也不會將c裡面的輸入與c++的一塊混用了,之前也碰到過這樣莫名其妙的錯誤,但沒有引起足夠的重視,這次可算被教訓了!
C語言輸入字元和字串
字元 對三個函式的總結 getchar getche getch 函式緩衝區 標頭檔案回顯 適用平台 getchar 有stdio.h 有windows linux mac os 等所有平台 getche 無conio.h 有windows getch 無conio.h 無windows 使用者按下...
C語言輸入字元和字串
c語言有多個函式可以從鍵盤獲得使用者輸入,它們分別是 scanf 和 printf 類似,scanf 可以輸入多種型別的資料。getchar getche getch 這三個函式都用於輸入單個字元。gets 獲取一行資料,並作為字串處理。scanf 是最靈活 最複雜 最常用的輸入函式,我們講解字元輸...
c 字串輸入
知道好多人初學者會像我一樣看不懂那些長篇的輸入介紹 也不想看 這裡有直接的 寫法!以前只會用gets 結果它被c 11標準給刪了,洛谷裡用不了。因為用得少記不住,每次都得去查一遍,這裡就直接列幾個我已知的字串的輸入方法,注意事項寫在注釋,初學應該是足夠用了,後續會不斷補充。當然cin也可以 讀到空格...