C でのスペース文字のキャプチャ
C では、cin ストリームはデフォルトで空白文字 (スペース、タブ、改行など) をスキップします。 。 cin を使用して標準入力からスペース文字を直接読み取ろうとすると、プログラムはそれを無視します。
解決策 1: noskipws を使用する
この動作を変更するには、次のようにします。 noskipws マニピュレータを使用すると、空白のスキップを無効にすることができます。
cin >> noskipws >> a[i];
これを使用すると、マニピュレータを使用すると、cin は他の文字とともにスペース文字を読み取ります。
解決策 2: get を使用する
代わりに、get 関数を使用して入力から文字を読み取ることもできます。ストリーム。この関数を使用すると、文字を読み込むバッファを指定できます。
cin.get(a, n);
この場合、get は最大 n-1 文字を配列 a に読み込み、null 文字 ( ) を配列 a に追加します。配列の終わり。 n-1 文字に達する前に改行文字 (n) に遭遇すると、読み取りが停止します。
noskipws または get を使用すると、標準入力からスペース文字を効果的にキャプチャできます。 2 つの方法のどちらを選択するかは、プログラムの特定の要件によって異なります。
以上がC 入力ストリームでスペース文字をキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。