c++ 入力に空行が入っても文字列を全て受け取る方法

stdのcinは空行が入ると文字の入力受け取りをそこでストップしてしまいます。

例を書くと

入力

abc bc

string str;
// str = abc
cin >> str;

strにはabcのみが代入されます。

空行が入る場合でも、全ての文字列を受け取るには、std::getlineを使います。

std::getlineの使用例を書きます。

string str;
// abc bc
getline(cin, str);

空行もstrに代入されます。

また、文字通りgetline関数なので、改行がある地点までが代入されることになります。

入力

abc bc\nbc

string str;
// abc bc(改行後のbcは入らない)
getline(cin, str);

 

 

カテゴリー: c++タグ:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です