std::cin.getline() と std::cin の違いを理解する
C で入力と出力を操作する場合、 std::cin.getline() と std::cin の間のニュアンスを理解することが重要です。どちらも標準入力オブジェクト std::cin に属しますが、それぞれ異なる目的を果たし、入力の処理方法が異なります。
std::cin.getline()
詳しく見てみましょうstd::cin.getline()。 std:: 名前空間には、標準ライブラリの型、関数、およびオブジェクトの広範なコレクションが格納されます。 std::cin は、標準の文字入力を表すオブジェクトの 1 つです。標準入力から文字を抽出するためのメソッドと関数を提供します。
std::cin.getline() は、左側のオブジェクト (ここでは std) から文字の行を取得する std::cin のメソッドです。 ::シン)。改行文字 (n) に遭遇するか、指定された最大文字数に達するか、入力がなくなるまで文字の読み取りを続けます。
std::cin と std::cin.getline( )
std::cin と std::cin.getline() の主な違いは、空白と改行の処理方法にあります。文字:
使用例
これらの区別を理解することは、文字列や入力を扱う場合に非常に重要になります。スペースや改行を含めてください。例:
string name; int age; // Read a single word from std::cin std::cin >> name; // Suppose John // Read the next line of input std::string line; std::getline(std::cin, line); // Suppose "is 25 years old" // Extract the age from the line age = std::stoi(line.substr(line.find("is") + 3, line.find("years") - 5)); // Extract "25"
この例では、std::cin を使用して 1 つの単語 (名前) を読み取り、次に std::cin.getline() を使用して次の行全体を読み取ります。 std::cin を使用して年齢を含む行を読み取ると、周囲のテキストなしで「25」のみが抽出されることに注意してください。
結論
空白や改行を含む入力を扱う場合、std::cin.getline() と std::cin の違いを理解することが不可欠です。それぞれの異なる動作を理解することで、開発者は入力の特定の部分を効果的に取得し、データ処理における潜在的な曖昧さを回避できます。
以上がC の `std::cin` と `std::cin.getline()` の主な違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。