C のスペース入力について
C では、標準入力から入力を読み取るときに、抽出演算子 (cin) はデフォルトで空白文字をスキップします。これが、指定されたコードのように文字配列を使用してスペース文字を直接取得しようとするとスペースが無視される理由です。
noskipws によるスペースの処理
スペースも読み取るには他の空白文字と同様に、noskipws マニピュレータを使用できます。
cin >> noskipws >> a[i];
このマニピュレータは次のように指示します。 cin は空白を含むすべての文字を読み取ります。ただし、タブや改行などの他の空白文字も読み取られるため、あなたのケースでは理想的ではないかもしれません。
個々の文字に get() を使用する
スペース文字やその他の個々の文字を読み取るより正確な方法は、get() 関数を使用することです。
cin.get(a, n);
この関数は次のように読み取ります。入力ストリームから n 文字を取り出し、配列 a に格納します。改行文字 (n) に遭遇するか、n-1 文字の読み取り後に読み取りを停止します。すべての文字を収容するのに十分なサイズ (n) の配列を使用することが重要であることに注意してください。
get() を使用すると、個々の文字を確認し、特にスペース文字を探すことができます。
if (a[i] == ' ') // Do something when a space is encountered
この方法を使用すると、noskipws でグローバルに空白スキップを無効にする必要がなく、スペースやその他の文字をより選択的に処理できます。
以上がC でスペースを入力として読み取って処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。