C ++:为“ char [4]”数组错误获取太多的初始化程序

蓝色的

当我尝试编译正在处理的某些源代码时,出现此错误。我对编程非常陌生,由于某种原因,数组让我很难受:

airline2.cpp:9:84: error: too many initializers for ‘char [4]’
   char array_seats[][4] = {{'1', '2', '3', '4', '5', '6', '7'},{'A', 'B', 'C', 'D'}};

这是我的源代码:

#include <iostream>
using namespace std;

int main()
{
  char row, letter, answer;
  int letter2;

  char array_seats[][4] = {{'1', '2', '3', '4', '5', '6', '7'},{'A', 'B', 'C', 'D'}};

  for (int row = 0; row <= 6; row++)
    {
      for (int letter = 0; letter <= 4; letter++)
    {
      cout << array_seats[row][letter] << " ";
    }
      cout << endl;
    }

  do
    {
      cout << "Enter your desired seat row:\n";
      cin >> row;
      cout << "Enter a seat letter:\n";
      cin >> letter;

      if(letter == 'A' || letter == 'a')
    letter2 = 1;
      else if(letter == 'B' || letter == 'b')
    letter2 = 2;
      else if(letter == 'C' || letter == 'c')
    letter2 = 3;
      else if(letter == 'D' || letter == 'd')
    letter2 = 4;

      if(array_seats[row-1][letter2] == 'X')
    cout << "Sorry, this seat is taken.\n" << endl;

      else
    {
      array_seats[row-1][letter2] = 'X';
      cout << "Seat reservation successful.\n" << endl;
    }

      for (int row = 0; row <= 6; row++)
    {
      for (int letter = 0; letter <= 4; letter++)
        {
          cout << array_seats[row][letter] << " ";
        }
      cout << endl;
    }

      cout << "Would you like to try again? (Y/N)\n";
      cin >> answer;

    }while (answer == 'Y' || answer == 'y');

  cout << "Have a good flight!\n";

  return 0;

}

我尝试将错误设置为5并在末尾添加“ \ 0”,但似乎无济于事。有什么帮助吗?

1337忍者

您尝试初始化2D数组的方式存在语法错误。

  char array_seats[][4] = {{'1', '2', '3', '4', '5', '6', '7'},{'A', 'B', 'C', 'D'}};

上一行表示,每行将包含4个元素。如果您看到第一行,它具有7个元素,{'1','2','3','4','5','6','7'}。将其减少到4个元素,编译错误将消失。因此,您的array_seats现在将具有2行和4列

注意:进行上述操作将解决编译错误,但是您的程序会遇到严重的运行时错误。特别是当您尝试访问array_seats [2] [0]等时。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

C char数组初始化

在C中初始化2D char数组

C中char数组的异常初始化程序

在C中初始化char数组

C / C ++将char数组初始化为const char *

C char数组v C char *初始化

初始化char指针C ++

在C中初始化char指针数组

C-将结构解构为char数组

通过指针进行C ++初始化char数组

C ++-Char数组以某种方式初始化为错误的大小

Char数组指针和“错误:'char []'的初始化方法太多”

动态分配的char数组显示为未使用构造函数初始化

C ++错误:多维数组的初始化程序太多

在C中初始化char指针数组

C ++程序为初始化变量提供垃圾值

错误:无法使用类型为“ const char [34]”的左值初始化类型为“ const char”的返回对象

C-将数组中的char字符串排序为等于char用户输入

尝试从map <char,char> C中获取char时出现“错误:预期为'{'引入了lambda主体”

C ++在模板函数中初始化大小为“ static * int”的char数组

C ++错误:“ int [100]”的初始化程序太多|

C ++中数组的初始化程序太多

在C ++中初始化char **

错误:常量类型为'const char'的对象的默认初始化

错误:(289,23)C ++ / JNI / NDK-错误:无法使用类型为'jstring'(又名'_jstring *')的左值初始化'char *'类型的参数

在C中初始化未签名的char数组

初始化并使用C ++ std :: string作为char数组

C ++对象数组为每个对象返回相同的char *

C++:无法在使用类型条件的模板函数中用类型为“double”的左值初始化“char*”类型的参数