cin を使用したユーザーからの完全な行の読み取り
cin を使用してユーザー入力の完全な行を読み取ろうとしたとき、開発者は、最初の単語だけがキャプチャされるという問題によく遭遇します。この問題に対処するには、行抽出に正しい方法を利用することが不可欠です。
指定された C コードでは、cin >> を採用しています。 y; はユーザー入力を収集します。ただし、このアプローチでは最初のスペース文字までしか読み取られないため、単一の単語のみがキャプチャされます。
入力行全体を効果的に読み取るには、getline(cin, response) の使用に切り替えます。 ;。コードの更新バージョンは次のとおりです。
#include <iostream> #include <string> using namespace std; int main() { char x; cout << "Would you like to write to a file?" << endl; cin >> x; if (x == 'y' || x == 'Y') { string response; cout << "What would you like to write." << endl; getline(cin, response); // Use getline instead of cin >> ofstream file; file.open("Characters.txt"); file << strlen(response) << " Characters." << endl; file << endl; file << response; file.close(); cout << "Done. \a" << endl; } else { cout << "K, Bye." << endl; } }
getline を利用することで、入力行全体を効果的にキャプチャできるようになり、単一の単語のみを読み取る問題が解決されました。
以上がなぜ「cin」はユーザー入力の最初の単語だけを読み取るのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。