ホームページ  >  記事  >  バックエンド開発  >  完全なユーザー入力を取得するために「getline(cin, x)」を使用する理由

完全なユーザー入力を取得するために「getline(cin, x)」を使用する理由

Susan Sarandon
Susan Sarandonオリジナル
2024-11-20 11:32:50894ブラウズ

Why Use `getline(cin, x)` to Get Complete User Input?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。