getline(cin, x) を使用して完全なユーザー入力を取得する方法
プログラミングにおいて、ユーザー入力を読み取ることは基本的なタスクです。 cin は個々の文字や単語を取得するために使用できますが、テキスト全体を処理する場合にはその有用性が制限される可能性があります。この問題に対処するには、より適切なアプローチが必要です。
ユーザーにファイルへの書き込みを求める次のコードを考えてみましょう。
#include <iostream> #include <cstdlib> #include <cstring> #include <fstream> 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 y; cout << "What would you like to write?" << endl; getline(cin, y); // Replace cin >> y; ofstream file; file.open("Characters.txt"); file << strlen(y) << " Characters." << endl; file << endl; file << y; file.close(); cout << "Done. \a" << endl; } else { cout << "K, Bye." << endl; } return 0; }
元のコードでは、次の行がシン>> y;ユーザーが入力したテキスト行全体ではなく、単一の単語のみを読み取ります。これを修正するには、cin 関数を getline(cin, y); に変更する必要があります。
getline() 関数を使用すると、標準入力 (つまり、ユーザーのキーボード) から入力の完全な行を読み取ることができます。それを文字列変数 y に保存します。これにより、後続のコードがユーザーが入力したテキストの全行にアクセスできるようになり、必要に応じてテキストをファイルに書き込んだり、その他の操作を実行したりできるようになります。
以上が完全なユーザー入力を取得するために「getline(cin, x)」を使用する理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。