1. ホーム
  2. c++

[解決済み] c++でSpaceをcinする方法は?

2022-02-04 14:17:51

質問内容

あるコードがあるとします。

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];

しかし、個々の文字を見たいようなので、私としては get ループの前にこのように

 cin.get( a, n );

get は、改行文字が見つかった場合 ( \n ) または n-1 文字後。 早期に停止することで,ヌル文字 ( \0 ) を配列に追加します。 については istream インターフェース こちら .