繁体   English   中英

C ++错误从文件中读取值

[英]c++ error reading values from file

这是我的第一篇文章,因此,如果我按照论坛规则撰写或格式化了某些内容,请表达一些理解。 我也刚好是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
...

上面的文件的行数不确定。 它是通过另一个例程生成的。

我在代码::: 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;

但是,代码在此“ while”循环中失败。 我想念什么吗?

我收到的错误消息是一个窗口,提示“ xxx.exe已停止工作”。

任何帮助将不胜感激。

您会收到此错误,因为数组PipeI和PipeD在其第一个括号中只是一个索引长,因此

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

如果您想遍历它,则会得到错误。 数组在c ++中始终具有固定的大小。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM