将文本文件输入到数组时c ++程序崩溃

时间:2018-05-24 00:26:33

标签: c++

我是c ++的新手,我正在尝试使用以下格式创建一个可以从ftitikberat.txt输入matriks的程序:
id [...] - > matriks id
row [id [...]] - > matriks行的数量
coloumns [id [...]] - > matriks coloumns的数量
matriks [id [...]] [row [id [...]]] [col [id [...]]] - > matriks
姓名[id [...]] - > matriks名称

该程序可以编译,但是当我尝试输入ftitikberat.txt它总是崩溃

这是代码:

#include <iostream>
#include <fstream>

using namespace std;


int main()
{
int row[1000]; 
int col[1000];
int matriks[1000][4][4];
int id[1000];
int i,j,k;
string name[1000];
ifstream ifile("ftitikberat.txt");
for(i=1; i<=1000; i++)  
{
    ifile>>id[i]>>name[i]>>row[i]>>col[i];
    for(j=1; j<=row[id[i]]; j++)
    {
        for(k=1; k<=col[id[i]]; k++)
        {
            ifile>>matriks[id[i]][j][k];
        }
    }
}
ifile.close();

和文字:

  

1 null 1 1 0   
2 null 1 1 0   
3 null 1 1 0   
4 null 1 1 0   
。   
。 //直到   
。   
998 null 1 1 0   
999 null 1 1 0   
1000 null 1 1 0

我试图将文字更改为:
...
998 null 1 1 0 1
...
当我尝试编译并运行它时,程序工作得很好,除了我不能使用id 999和1000,因为它只是搞砸了,同样当我试图更改id为997的文本时(997 null 1 1 0 1)和程序没有崩溃,但我不能使用id 998,999,1000

我也尝试逐个更改最大数组,当我将(id和name)的最大数组从1000更改为1001时,程序没有崩溃,但我不知道为什么它的工作

有人可以解释一下为什么程序(在我更改文本/最大数组之前)不起作用?我盯着这个简单的程序,比如几个小时,但仍然不知道问题出在哪里:')

0 个答案:

没有答案