Cin を使用してユーザーから行全体を読み取る
提供された C コードで、テキスト行をファイルに書き込むことを目的としています。 , しかし、行全体ではなく 1 つの単語だけが書かれているという問題が発生します。解決策は、コードによるユーザー入力の処理にあります。
コードは cin >> を使用しています。 y はユーザーからの文字を読み取りますが、これは入力された最初の文字のみをキャプチャします。行全体を読み取るには、別のアプローチを使用する必要があります。
cin の代わりに >> y、次のコードを使用します:
string response; getline(cin, response);
この行は getline を使用して、ユーザーからのテキスト行全体を読み取ります。入力されたテキストは、文字列変数の応答に保存されます。
この変更をコードに組み込む方法は次のとおりです。
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); ofstream file; file.open("Characters.txt"); file << strlen(response.c_str()) << " Characters." << endl; file << endl; file << response; // Now writes the entire line file.close(); cout << "Done. \a" << endl; } else { cout << "K, Bye." << endl; }
getline を使用して完全な行を読み取ることで、効果的に次のことが可能になります。複数単語の応答をファイルに書き込みます。
以上がC でユーザーからのテキスト行全体を読み取る方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。