C++在if语句中声明变量

Jor*_*ama 1 c++ declaration

我在c ++中有一个非常基本的问题,我正在读取一个制表符分隔文件,我想要声明一个带有维度的数组,如果文件有的字段数(使用不同宽度的不同文件),所以我需要阅读第一行并计算字段数,我试过这个:

while(getline(t, line));{
...
if(!flag)
{int array[size][5];
flag=1}
...
}
Run Code Online (Sandbox Code Playgroud)

但后来我得到了错误:

错误:此范围内未声明'array'

我理解这是因为变量的范围在if循环中,有没有办法声明一个空数组并调整它的大小?或者我必须使用指针?

int*_*jay 6

数组的大小必须是编译时常量.std::vector如果需要动态大小的数组,请使用a .

您的代码的其他问题:

  1. 删除分号后while,或者只读整个文件后循环体只执行一次.

  2. 之后添加分号flag=1.