c++从文件中读取值时出错

c++ error reading values from file

本文关键字:出错 读取 文件 c++      更新时间:2023-10-16

这是我的第一篇文章,所以如果我写了一些违反论坛规则的东西,请表示理解。我碰巧也是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
...

上述文件的行数可能不确定。它是通过其他例程生成的。

我用代码做了一个例程::块。我制作了三个矩阵,将上述数据保存为整数、双精度和字符串。我所做的减速如下:

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;

但是,代码在此"while"循环中失败。我错过什么了吗?

我收到的错误消息是一个窗口,上面写着"xxx.exe已停止工作"。

任何帮助都将不胜感激。

您会得到这个错误,因为您的数组PipeI和PipeD在它们的第一个括号中只有一个索引长,所以它类似于

PipeI[1][3]={0};
PipeD[1][6]={0};

如果你试图对它进行迭代,你就会得到错误。数组在c++中总是具有固定大小。