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

我怎样才能得到它,以便二维字符数组可以检测是否有换行符?我的程序似乎只是跳过了 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 回答