問題描述:輸入n代表接下來輸入n行字串,例如下面所示;
5[05:00 a.m.]: server is started
[05:00 a.m.]: rescan initialized
[01:13 p.m.]: request processed
[01:10 p.m.]: request processed
[11:40 p.m.]: rescan completed
3[09:00 a.m.]: user logged in
[08:00 a.m.]: user logged in
[07:00 a.m.]: user logged in
寫法1:
這種寫法的問題是輸入n之後的回車符號沒有處理,程式在執行getline的時候就會出現問題,如只讀取一行程式就結束了。
解決方法:加入cin.ignore() 處理輸入n之後的回車符號。
寫法2:
所以,以後再遇到此類問題時,需要注意處理回車符。
C 行輸入getline 和get
c語言在讀取字串時可使用scanf 函式,但是scanf 只能讀入乙個單詞,如果要讀取一行文字可使用gets 和其它函式,詳細可戳此鏈結檢視。同樣,在c 中也提供了面向行輸入的函式getline 和get getline 函式讀取整行,通過回車換行符確定輸入結尾,隨後丟棄換行符。要呼叫這種方法,使用...
面向行的輸入 getline()和get()
getline getline 函式讀取整行,它使用通過回車鍵輸入的換行符來確定輸入結尾。呼叫方法為cin.getline 該函式有兩個引數。第乙個引數是陣列名,第二個引數是要讀取的字元數。例如第二個引數為n,則函式最多讀取n 1個字元,因為至少要保留乙個空間存空字元,即 0 getline 成員函...
C 字串的輸入和用getline輸入遇到的問題
c 中的字串讀入我們通常是用 cin str 它只要碰到空格或者換行符就意味著本字串讀取結束,且不會讀取空格和換行符 相當於叢輸入流中丟掉 而getline函式讀取一行字串,可以讀入空格,遇到換行符結束 從輸入流中丟掉該換行符 且緊跟後續的getline不會讀取到該換行符。但是,注意一點就是 如果唯...