logo

C++ の Cin.ignore() 関数

C++ では、 cin.ignore() 解決には機能が必須 入力関連の問題 特に、 食べる そして getline関数 一緒に。入力バッファをクリアして不要な文字を削除することで、開発者は入力プロセスが期待どおりに正確に動作することを保証できます。この記事では、 cin.ignore() 関数の 構文、使用法、例 、 そして 期待される出力

ストリーム クラスの cin.ignore() 関数 を使用すると、指定された文字数まで、または特定の区切り文字が見つかるまでテキストを無視できます。その構文は次のとおりです。

cin.ignore(n, 区切り文字);

Cin.ignore() 関数のパラメータ 構文:

n (オプション): 何文字にするかを示します 無視されました

区切り文字 (オプション): それは、 区切り文字 、その後の入力は無視されます。そうでない場合 指定された 、デフォルトでは 1 。何もなければ 指定された 、 それから 改行文字 ('n') によって使用されます デフォルト

Cin.ignore() 関数の使用法と操作:

主な目的は、 cin.ignore() 関数 取り除くことです 望ましくない文字 から 入力バッファ 。入力バッファがクリアされたため、新しい入力を読み取ることができます。後など様々な場面でご利用いただけます。 数値入力の読み取り 食べる 、 前に 文字列の読み取り ゲットライン 、および別々の入力手順を組み合わせる場合。

以下のいずれかの条件が満たされるまで 満たされた、cin.ignore() の読み取り 入力バッファから文字を取り出して破棄します。

  1. もし 「n」文字 指定されても無視されました。
  2. 区切り文字 (指定されている場合) が見つかるまで、文字は無視されていました。
  3. そうなると、 入力バッファ 一杯。

1 文字を省略する

ユーザーから 2 文字を読み取る必要がある簡単なシナリオについて考えてみましょう。しかし、私たちにはその必要はありません 最初の文字 ;必要なのは 2番 。以下に示すように、次を使用してこれを実現できます。 cin.ignore()

 #include int main() { char secondCharacter; std::cout&lt;&gt;std::noskipws&gt;&gt;secondCharacter; std::cin.ignore(); std::cout&lt;&lt; &apos;The second character is: &apos; &lt;<secondcharacter<<std::endl; return 0; } < pre> <p> <strong>Output:</strong> </p> <pre> Enter two characters: AB The second character is: B </pre> <p> <strong>Explanation:</strong> </p> <p>In the above example, we use <strong> <em>std::noskipws</em> </strong> to <strong> <em>stop characters</em> </strong> from reading with whitespace skipped. In order to remove the undesirable character after reading the first character, we call <strong> <em>cin.ignore()</em> </strong> without any arguments. As a result, the <strong> <em>&apos;secondCharacter&apos;</em> </strong> variable only contains the <strong> <em>second character</em> </strong> .</p> <h3>Until a Delimiter</h3> <p>Let&apos;s say we simply want to <strong> <em>read</em> </strong> the first word from a user-provided line of text. We can accomplish this with the help of <strong> <em>cin.ignore()</em> </strong> and the delimiter specified as follows:</p> <pre> #include #include int main() { std::string firstWord; std::cout&lt;&gt;std::ws, firstWord, &apos; &apos;); std::cout&lt;&lt; &apos;The first word is: &apos; &lt;<firstword<<std::endl; return 0; } < pre> <p> <strong>Output:</strong> </p> <pre> Enter a sentence: Hello, World! How are you? The first word is: Hello, </pre> <p> <strong>Explanation:</strong> </p> <p>In the above example, leading <strong> <em>whitespace</em> </strong> is skipped using <strong> <em>std::ws</em> </strong> before the input is read using <strong> <em>getline()</em> </strong> . When the <strong> <em>delimiter</em> </strong> is set to a <strong> <em>space (&apos; &apos;), cin.ignore()</em> </strong> will only extract the first word and disregard all other characters up to that point.</p> <h2>Conclusion:</h2> <p>For addressing input-related concerns and providing exact control over the input buffer, the C++ <strong> <em>cin.ignore() function</em> </strong> is a useful tool. Developers can efficiently handle undesired characters and accomplish the required behavior in their programs by understanding its syntax, usage, and functioning principle.</p> <p>Developers can ensure precise and anticipated input procedures by using the <strong> <em>cin.ignore() function</em> </strong> to skip until a designated delimiter or disregard a set of characters. When working with mixed input types, numeric input that is followed by string input, or when reading strings using <strong> <em>getline()</em> </strong> , this function is quite helpful.</p> <p>Developers can avoid unexpected behavior brought on by lingering characters in the input buffer by properly using <strong> <em>cin.ignore()</em> </strong> . By clearing the buffer and allowing for the reading of new input, this function aids in maintaining the integrity of following input operations.</p> <p>For proper handling of various input conditions, it is imperative to comprehend the parameters and behavior of <strong> <em>cin.ignore()</em> </strong> . With the help of <strong> <em>cin.ignore()</em> </strong> , programmers can create <strong> <em>powerful</em> </strong> and <strong> <em>dependable</em> </strong> input handling systems for their <strong> <em>C++ programs</em> </strong> , whether they want to ignore a single character or skip till a delimiter.</p> <p>In conclusion, the <strong> <em>cin.ignore() function</em> </strong> is a crucial part of C++ input processing since it enables programmers to remove unnecessary characters and guarantee accurate and seamless input operations. Understanding how to use it effectively can considerably improve the stability and usability of C++ applications.</p> <hr></firstword<<std::endl;></pre></secondcharacter<<std::endl;>

説明:

上の例では、 std::noskipws ストップキャラクター 空白をスキップした読み取りから。最初の文字を読んだ後に望ましくない文字を削除するには、次のように呼び出します。 cin.ignore() 議論なしで。その結果、 '2番目の文字' 変数には、 2番目の文字

区切り文字まで

単純にそうしたいとしましょう 読む ユーザーが入力したテキスト行の最初の単語。以下の助けを借りてこれを達成できます cin.ignore() 区切り文字は次のように指定されます。

 #include #include int main() { std::string firstWord; std::cout&lt;&gt;std::ws, firstWord, &apos; &apos;); std::cout&lt;&lt; &apos;The first word is: &apos; &lt;<firstword<<std::endl; return 0; } < pre> <p> <strong>Output:</strong> </p> <pre> Enter a sentence: Hello, World! How are you? The first word is: Hello, </pre> <p> <strong>Explanation:</strong> </p> <p>In the above example, leading <strong> <em>whitespace</em> </strong> is skipped using <strong> <em>std::ws</em> </strong> before the input is read using <strong> <em>getline()</em> </strong> . When the <strong> <em>delimiter</em> </strong> is set to a <strong> <em>space (&apos; &apos;), cin.ignore()</em> </strong> will only extract the first word and disregard all other characters up to that point.</p> <h2>Conclusion:</h2> <p>For addressing input-related concerns and providing exact control over the input buffer, the C++ <strong> <em>cin.ignore() function</em> </strong> is a useful tool. Developers can efficiently handle undesired characters and accomplish the required behavior in their programs by understanding its syntax, usage, and functioning principle.</p> <p>Developers can ensure precise and anticipated input procedures by using the <strong> <em>cin.ignore() function</em> </strong> to skip until a designated delimiter or disregard a set of characters. When working with mixed input types, numeric input that is followed by string input, or when reading strings using <strong> <em>getline()</em> </strong> , this function is quite helpful.</p> <p>Developers can avoid unexpected behavior brought on by lingering characters in the input buffer by properly using <strong> <em>cin.ignore()</em> </strong> . By clearing the buffer and allowing for the reading of new input, this function aids in maintaining the integrity of following input operations.</p> <p>For proper handling of various input conditions, it is imperative to comprehend the parameters and behavior of <strong> <em>cin.ignore()</em> </strong> . With the help of <strong> <em>cin.ignore()</em> </strong> , programmers can create <strong> <em>powerful</em> </strong> and <strong> <em>dependable</em> </strong> input handling systems for their <strong> <em>C++ programs</em> </strong> , whether they want to ignore a single character or skip till a delimiter.</p> <p>In conclusion, the <strong> <em>cin.ignore() function</em> </strong> is a crucial part of C++ input processing since it enables programmers to remove unnecessary characters and guarantee accurate and seamless input operations. Understanding how to use it effectively can considerably improve the stability and usability of C++ applications.</p> <hr></firstword<<std::endl;>

説明:

上の例では、先頭に 空白 を使用してスキップされます std::ws を使用して入力が読み取られる前に getline() 。とき デリミタ に設定されています スペース (' ')、cin.ignore() 最初の単語のみが抽出され、それまでの他の文字はすべて無視されます。

結論:

入力関連の問題に対処し、入力バッファーを正確に制御するには、C++ cin.ignore() 関数 便利なツールです。開発者は、その構文、使用法、および機能原理を理解することで、不要な文字を効率的に処理し、プログラム内で必要な動作を実現できます。

挿入ソート

開発者は、 cin.ignore() 関数 指定された区切り文字までスキップするか、一連の文字を無視します。混合入力タイプ、数値入力の後に文字列入力を使用する場合、または次を使用して文字列を読み取る場合。 getline() , この機能はかなり便利です。

開発者は、適切に使用することで、入力バッファ内の文字の残留によって引き起こされる予期しない動作を回避できます。 cin.ignore() 。この関数は、バッファをクリアして新しい入力の読み取りを許可することにより、後続の入力操作の整合性を維持するのに役立ちます。

さまざまな入力条件を適切に処理するには、パラメータと動作を理解することが不可欠です。 cin.ignore() 。の助けを借りて cin.ignore() 、プログラマーが作成できる 強力な そして 頼りになる 入力処理システム C++ プログラム 、単一文字を無視するか、区切り文字までスキップするか。

結論としては、 cin.ignore() 関数 は、プログラマが不要な文字を削除し、正確でシームレスな入力操作を保証できるため、C++ 入力処理の重要な部分です。これを効果的に使用する方法を理解すると、C++ アプリケーションの安定性と使いやすさを大幅に向上させることができます。