Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
奇妙な理由で、getline()関数が正常に機能していません。再帰を介してプログラムループがあります(return main();)。次のコードを初めて実行するときは、問題ありません。
cout << "Enter a phrase: "; string user; getline(cin, user);
ただし、再帰が呼び出された後、プログラムは入力を許可するステップをスキップします。その結果、文字列ユーザーは空になります。なぜ何かアイデアはありますか?
ありがとう。
mainへの再帰呼び出しは、C ++では明確に定義されていません(Cでは定義されています)。それが問題の原因である場合とそうでない場合があります。
cin.clear()ループする前に、フラグをクリアするために呼び出します。
cin.clear()
編集:指摘してくれた@Xeoに感謝します。また、cin.ignore()改行文字を破棄するように呼び出す必要があります-これはまだバッファに残っている可能性があります...
cin.ignore()