2

改行のテストに助けが必要です。私のプログラムでは

char s[9][9];
for(unsigned int i = 0; i < 9; i++)
{
  for(unsigned int j = 0; j < 9; j++)
  {
      cin >> s[i][j];
      if(s[i][j] == '\n')
      {
        cout << "ERROR" << endl;
      }
  }
}

2次元のchar配列が改行があるかどうかを検出できるようにするにはどうすればよいですか? 私のプログラムは単に if ステートメントをスキップしているようです。可能であれば、getline などを使用しないことをお勧めします。

4

2 に答える 2

3

どちらのnoskipwsフラグも使用できます

cin >> noskipws >> s[i][j]; 

またはcin.get ();メソッド:

s[i][j] = cin.get ();
于 2012-10-21T07:31:59.400 に答える
0

これでうまくいきます。

#include "iostream"
using namespace std;

int main()
{
    int count = 0;
    char s[9][9];
    for(unsigned int i = 0; i < 9; i++)
    {
      for(unsigned int j = 0; j < 9; j++)
      {
        cin >> noskipws >>s[i][j];
        count++;
          if(s[i][j] == '\n' || count == 82)
          {
            cout << "ERROR" << endl;
          }
      }
    }
}
于 2012-10-21T07:37:22.503 に答える