2017-08-27 17 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仕事を?相違点は何ですか?いつ適切に適用されますか? 特に、指定された文字列を比較すると混乱します。混乱が文字列には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); 

からの文字の抽出は、区切り文字まで、またはデフォルトでは "\ n"までです。

グローバル名前空間でノー「>>」演算子は、実際にそこにある (CIN)の場合のために、これが実際のように空白を使用していますArgument-dependent lookupKoenig lookupstd名前空間に

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

関数を呼び出しています区切り文字を使用するので、文全体ではなく単語を抽出します。これは、行全体を取得するgetlineとの違いです。