这是我的第一篇文章,所以如果我根据论坛规则撰写或编写了一些内容,请表示理解。我也恰好是C ++的新手程序员,所以如果可能的话请尽可能地写一些简化。
我需要从名为text.txt的文件中读取一些值(总共13列):
1 2 B5 AA 120 0 100 1.5 1.5 G 0 0 0 \n
1 2 B6 AB 120 0 100 1.5 1.5 G 0 0 0 \n
1 2 B7 AC 120 0 100 1.5 1.5 G 0 0 0 \n
...
上述文件可能有不确定的行数。它是通过其他例程生成的。
我在code :: blocks中创建了一个例程。我制作了三个矩阵,将上述数据保存为整数,双精度,字符串。我做的减速如下:
int c1, c2, c7, i = 0, nNumPipes;
double c5, c6, c8, c9, c11, c12, c13;
string c3, c4, c10;
int PipeI[][3] = {0};
double PipeD[][6] = {0};
string PipeS[10000][3];
然后我使用以下语法来读取这些行:
ifstream inf("C:\\text.txt");
while (inf >> c1 >> c2 >> c3 >> c4 >> c5 >> c6 >> c7 >> c8 >> c9 >> c10 >> c11 >> c12 >> c13)
{
PipeI[i][0] = c1;
PipeI[i][1] = c2;
PipeS[i][0] = c3;
PipeS[i][1] = c4;
PipeD[i][2] = c5;
PipeI[i][2] = c7;
PipeD[i][0] = c8;
PipeD[i][1] = c9;
PipeS[i][2] = c10;
PipeD[i][5] = c11;
PipeD[i][3] = c12;
PipeD[i][4] = c13;
i++;
}
nNumPipes = i;
然而,在这个'中,代码失败了。环。我想念一下吗?
我收到的错误消息是一个窗口说" xxx.exe已停止工作"。
任何帮助将不胜感激。
答案 0 :(得分:1)
你得到这个错误,因为你的数组PipeI和PipeD在它们的第一个括号中只有一个索引,所以它就像
PipeI[1][3]={0};
PipeD[1][6]={0};
如果你想要迭代它,你会得到错误。 数组在c ++中总是有固定的大小。