2017-08-27 43 views
1
string input_a; 
string input_b; 

cout << "Input a :" ; 
getline(cin,input_a); 

cout << "Input b :" ; 
cin >> input_b; 

cout << "Input a :" << input_a <<endl 
     << "Input b :" << input_b; 
return 0; 

getline(cin,input_a)cin >> input_b如何在內部工作來接受輸入值?有什麼區別,什麼時候適用? 混亂,特別是比較給定的字符串。混淆getline和direction將cin分配給字符串

+1

你看過文檔嗎? http://en.cppreference.com/w/cpp/string/basic_string/getline和http://en.cppreference.com/w/cpp/string/basic_string/operator_ltltgtgt。 –

回答

0

「getline」和「cin >>」之間應用程序的區別在於「getline」會將整行字符串與空格一起使用,而「cin >>」命令只會使用沒有多餘空格的字符串。

例如:如果我們想從用戶使用「cin >>」命令掃描「Hello World」,我們無法獲得整個字符串。將只存儲「你好」。而「getline」將幫助我們存儲整行字符串「Hello World」。從

0
istream& getline (istream& is, string& str, char delim);  
istream& getline (istream& is, string& str); 

提取字符是到STR直到劃界字符,或每默認直到「\ n」個。

的情況下CIN, 居然沒有任何「>>」操作符的全局命名空間,它是由Argument-dependent lookupKoenig lookup 調用std命名空間中的功能

istream& operator>> (istream& is, string& str)

這實際上使用空格作爲分隔符,所以它提取了一個單詞而不是整個句子。這與getline有所不同,它獲取整個行。