我在c ++中有一个非常基本的问题,我正在读取一个制表符分隔文件,我想要声明一个带有维度的数组,如果文件有的字段数(使用不同宽度的不同文件),所以我需要阅读第一行并计算字段数,我试过这个:
while(getline(t, line));{
...
if(!flag)
{int array[size][5];
flag=1}
...
}
Run Code Online (Sandbox Code Playgroud)
但后来我得到了错误:
错误:此范围内未声明'array'
我理解这是因为变量的范围在if循环中,有没有办法声明一个空数组并调整它的大小?或者我必须使用指针?
数组的大小必须是编译时常量.std::vector如果需要动态大小的数组,请使用a .
您的代码的其他问题:
删除分号后while,或者只读整个文件后循环体只执行一次.
之后添加分号flag=1.