c語言在讀取字串時可使用scanf()
函式,但是scanf()
只能讀入乙個單詞,如果要讀取一行文字可使用gets()
和其它函式,詳細可戳此鏈結檢視。
同樣,在c++中也提供了面向行輸入的函式getline()
和get()
。
getline()
函式讀取整行,通過回車換行符確定輸入結尾,隨後丟棄換行符。
要呼叫這種方法,使用cin.getline()
。該函式有兩個引數,第乙個引數是用來儲存輸入的變數名,第二個引數是要讀取的字元數,如果這個引數是n
,則最多讀取n-1
個字元,因為會自動新增空字元。例如
cin.
getline
(name,20)
;
getline()
可連續使用,讀取不同的行
cin.
getline
(name1,20)
.getline
(name2,20)
;
getline()
函式也可按照下面這種方式使用
getline
(cin, str)
;
這種方式並沒有使用句點表示法,表明它不是類方法,與上文所述的是不同的。這個函式將cin
作為引數指出在哪查詢輸入。沒有指定長度會自動調整長度大小。
get()
函式的一種使用方法與getline()
相同,但不同點是get()
不讀取並丟棄換行符,而是保留在輸入佇列中,例如
cin.
get(name,20)
;
get()
也可以不帶任何引數,與上述方法配合使用可以讀取末尾的換行符,如
cin.
get(name,20)
;cin.
get();
// 讀取換行符
也可將上述兩條語句拼接成一條語句
cin.
get(name,20)
.get()
;
當遇到空行時,get()
讀取空行後設定失效位,這意味著接下來的輸入將被阻斷,但可以用cin.clear()
恢復輸入。 面向行的輸入 getline()和get()
getline getline 函式讀取整行,它使用通過回車鍵輸入的換行符來確定輸入結尾。呼叫方法為cin.getline 該函式有兩個引數。第乙個引數是陣列名,第二個引數是要讀取的字元數。例如第二個引數為n,則函式最多讀取n 1個字元,因為至少要保留乙個空間存空字元,即 0 getline 成員函...
C 的getline()和get()函式
在介紹這兩個函式之前,我們最常使用的字元或者字串輸入函式是cin 所以我們應當明白有了cin之後為什麼還需要這兩個函式?一.cin函式cin a a如果是字元型別,讀取乙個位元組,a如果是字串型別,就讀取乙個單詞 賦值 將得到的輸入賦給a 讀取結束標誌 使用空白 空格,製表符和換行符 來確定字串的結...
C 中讀取一行資料 get和getline
在c 中最常用到的輸入自然是cin了,但它有個缺點就是當輸入有空格時,只能讀取到空格前面的內容。我們自然是希望能夠讀取到一整行的內容了。好在c 中提供了兩個函式 get和getline,也就是這篇文章的主角了。先從getline開始吧。當我們想從輸入流中讀取到一行資料時,我們可以這樣呼叫cin.ge...