ホームページ > バックエンド開発 > C++ > std::cin.getline() と std::cin: いつどちらを使用する必要がありますか?

std::cin.getline() と std::cin: いつどちらを使用する必要がありますか?

Barbara Streisand
リリース: 2024-12-08 07:06:12
オリジナル
516 人が閲覧しました

std::cin.getline() vs. std::cin: When Should I Use Which?

std::cin.getline() と std::cin: 違いを理解する

C では、標準入力からの文字入力を扱うのは std::cin.getline() と std::cin です。どちらも同様の目的を果たしますが、動作と使用例には重要な違いがあります。

std::cin

std::cin は標準の文字入力オブジェクトを表します。 C で。標準入力から文字を読み取るためのさまざまなメソッドと関数が提供されます。これらのメソッドと関数は、単一または複数の文字を取得することを目的としています。

std::cin.getline()

std::cin.getline() は、標準入力から入力行全体を読み取るように特別に設計された std::cin オブジェクトのメソッド。 2 つのパラメータを取ります:

  1. 入力行が保存される文字列または文字配列への参照
  2. 読み取る最大文字数 (オプション)

違いと使用例

次の主な違いstd::cin.getline() と std::cin はその目的にあります。 std::cin は通常、個々の文字または空白で区切られた値を読み取るために使用されますが、 std::cin.getline() は、スペースや特殊文字を含む入力の完全な行を読み取るために特別に調整されています。

ここにあります。主な違いの内訳:

  • 入力粒度: std::cin は文字を読み取ります。一方、 std::cin.getline() は、改行文字 (n) まで、または指定された最大文字制限に達するまで、入力行全体を読み取ります。
  • 空白処理: std::cin は空白文字を区切り文字として扱いますが、 std::cin.getline() は空白文字を区切り文字の一部として保持します。 input.
  • Line Breaking: std::cin は改行文字を自動的に読み取って破棄しませんが、 std::cin.getline() は自動的に改行文字を読み取って末尾の改行文字を破棄します。入力行。

追加考慮事項

std::cin.getline() とは別に、std::cin オブジェクトで使用できる他のメソッドと関数があります。これらには次のものが含まれます:

  • std::string s; std::cin >> s; // std::cin から 1 つの単語を読み取ります (空白まで)
  • int i; std::cin >>私; // std::cin
  • std::cin.ignore(100) から単一の数値を読み取ります。 // std::cin
の次の 100 文字を破棄します

以上がstd::cin.getline() と std::cin: いつどちらを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート