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ǔ)言如何實(shí)現(xiàn)Unix時(shí)間戳與本地時(shí)間轉(zhuǎn)化
這篇文章主要介紹了C語(yǔ)言如何實(shí)現(xiàn)Unix時(shí)間戳與本地時(shí)間轉(zhuǎn)化的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03C語(yǔ)言中獲取和改變目錄的相關(guān)函數(shù)總結(jié)
這篇文章主要介紹了C語(yǔ)言中獲取和改變目錄的相關(guān)函數(shù)總結(jié),包括getcwd()函數(shù)和chdir()函數(shù)以及chroot()函數(shù)的使用方法,需要的朋友可以參考下2015-09-09對(duì)C語(yǔ)言編程標(biāo)準(zhǔn)以及聲明的基本理解
這篇文章主要介紹了對(duì)C語(yǔ)言編程標(biāo)準(zhǔn)以及聲明的基本理解,有助于對(duì)C語(yǔ)言編寫時(shí)的結(jié)構(gòu)有更加清晰的認(rèn)識(shí),需要的朋友可以參考下2015-11-11VSCode遠(yuǎn)程開發(fā)調(diào)試服務(wù)器c/c++代碼
語(yǔ)音相關(guān)的好多項(xiàng)目要在linux上跑,但代碼開發(fā)大多是在PC機(jī)上,本篇簡(jiǎn)單介紹一下怎么在個(gè)人電腦上用VSCode遠(yuǎn)程開發(fā)調(diào)試服務(wù)器上的c/c++代碼。感興趣的朋友跟隨小編一起看看吧2020-04-04