cin.get()和cin.getline()之間的區(qū)別
cin.getline()和cin.get()都是對(duì)輸入的面向行的讀取,即一次讀取整行而不是單個(gè)數(shù)字或字符,但是二者有一定的區(qū)別。
cin.get()每次讀取一整行并把由Enter鍵生成的換行符留在輸入隊(duì)列中,比如:
#include <iostream>
using std::cin;
using std::cout;
const int SIZE = 15;
int main( ){
cout << "Enter your name:";
char name[SIZE];
cin.get(name,SIZE);
cout << "name:" << name;
cout << "\nEnter your address:";
char address[SIZE];
cin.get(address,SIZE);
cout << "address:" << address;
}
輸出:
Enter your name:jimmyi shi
name:jimmyi shi
Enter your address:address:
在這個(gè)例子中,cin.get()將輸入的名字讀取到了name中,并將由Enter生成的換行符'/n'留在了輸入隊(duì)列(即輸入緩沖區(qū))中,因此下一次的cin.get()便在緩沖區(qū)中發(fā)現(xiàn)了'/n'并把它讀取了,最后造成第二次的無(wú)法對(duì)地址的輸入并讀取。解決之道是在第一次調(diào)用完cin.get()以后再調(diào)用一次cin.get()把'/n'符給讀取了,可以組合式地寫為cin.get(name,SIZE).get();。
cin.getline()每次讀取一整行并把由Enter鍵生成的換行符拋棄,如:
#include <iostream>
using std::cin;
using std::cout;
const int SIZE = 15;
int main( ){
cout << "Enter your name:";
char name[SIZE];
cin.getline(name,SIZE);
cout << "name:" << name;
cout << "/nEnter your address:";
char address[SIZE];
cin.get(address,SIZE);
cout << "address:" << address;
}
輸出:
Enter your name:jimmyi shi
name:jimmyi shi
Enter your address:YN QJ
address:YN QJ
由于由Enter生成的換行符被拋棄了,所以不會(huì)影響下一次cin.get()對(duì)地址的讀取。
如果cin.get()是一個(gè)一個(gè)字符的讀入,但是cin.get()不會(huì)忽略任何字符,對(duì)于回車符需要單獨(dú)處理。
兩點(diǎn)注意:
(1) 學(xué)會(huì)區(qū)別get()與getline();
(2)換行符號(hào)是\n,而不是/n;
相關(guān)文章
如何利用C語(yǔ)言位運(yùn)算解決只出現(xiàn)一次的數(shù)字
這篇文章主要給大家介紹了關(guān)于如何利用C語(yǔ)言位運(yùn)算解決只出現(xiàn)一次的數(shù)字的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
C++關(guān)鍵字thread_local學(xué)習(xí)筆記
這篇文章主要為大家介紹了C++關(guān)鍵字thread_local學(xué)習(xí)筆記,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
Win32應(yīng)用程序(SDK)設(shè)計(jì)原理詳解
這篇文章主要介紹了Win32應(yīng)用程序(SDK)設(shè)計(jì)原理,對(duì)于理解win32應(yīng)用程序運(yùn)行原理有很大的幫助,需要的朋友可以參考下2014-08-08
C++ 復(fù)制控制之復(fù)制構(gòu)造函數(shù)的實(shí)現(xiàn)
所謂的“復(fù)制控制”即通過這三個(gè)成員函數(shù)控制對(duì)象復(fù)制的過程,本文主要介紹了C++ 復(fù)制控制之復(fù)制構(gòu)造函數(shù)的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11

