C でのスペースの識別と読み取り
C での入力および出力操作は、空白文字に関する特定の規則に従います。デフォルトでは、ストリームマニピュレータ cin および cout は、データの読み取りまたは書き込み中に空白を無視します。これにより、特にスペース文字をキャプチャしようとすると問題が発生する可能性があります。
提供されたコード スニペットでは、
int main() { char a[10]; for (int i = 0; i < 10; i++) { cin >> a[i]; if (a[i] == ' ') cout << "It is a space!!!" << endl; } return 0; }
プログラムは入力中にスペースを無視します。これを解決するには、次のアプローチを検討してください。
noskipws マニピュレータの使用:
このマニピュレータは、デフォルトの空白スキップ動作を無効にします:
cin >> noskipws >> a[i];
cin.get() の使用関数:
この関数は、スペースを含む入力バッファーから文字を読み取ります:
cin.get(a, n);
ここで、n は読み取る文字数です。
注意: cin.get() は、改行に遭遇するか、指定された制限に達すると、文字の読み取りを停止します。配列に null 文字 ( ) を追加して文字列を終了します。
入出力操作の詳細については、std::cin インターフェイスと std::cout インターフェイスのドキュメントを参照してください。
以上がC 入力でスペースを読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。