C 行輸入getline 和get

2021-10-09 04:33:12 字數 1304 閱讀 3043

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...