2016-09-19 13 views
0

私はここで奇妙な問題があります。私は以下のコードを使用して、入力として2つの文字列を取得しています:C++ getline();以下を表示

std::string input1, input2; 
std::cout<<"Please enter name:"; 
std::getline(std::cin, input1); 
std::cout<<"Address: "; 
std::getline(std::cin,input2); 
私がいる問題がある

その代わりに、出力は次のようになりますので、一度、一度に両方のディスプレイを1の表示:

Please enter name: Address:

結果として、いずれの文字列も入力されません。

どのような問題が発生する可能性がありますか?

+2

'std :: cout >>"名前を入力してください: ";' ?!どのようにしてこれをコンパイルしましたか? '<<'でなければなりません。 –

+0

@AmiTavory oopsが間違ってコピーしました – JAPK

+1

[mcve]を表示できますか?これに先立って他の入力がありますか?どのようにプログラムを開始していますか? – Angew

答えて

3

(cin.ignoreを使用してみてください)getlineの前に//ユーザーが押した後に残された\ nがあるのでループで、それはあなたが必要と無視する

cin.ignore(); 

を使用しないでくださいキー

+0

これは、ありがとう – JAPK

+2

@ JohnKresselしかし、これは、*あなたがコメントで言ったことに反して*いくつかの先行入力があったことを意味します。プログラムの起動時に入力ストリームが空です。 – Angew

0

を入力無視入力してください。使用

cin>>ws; 

getlineの前。 wsは空白を意味します。これはプログラム内の空白を無視し、コードは正常に動作します。

関連する問題