C语言 运行循环算法时阅读文件分段错误

u7up0aaq  于 2022-12-11  发布在  其他
关注(0)|答案(1)|浏览(113)

当我试图运行循环算法时,我得到这个错误,当从用户那里获取输入时,算法工作得很好。这是代码:

else if (select==2)
    {
        FILE * filehandle;
        char lyne[100];
        char *item;
        int reccount = 0;
        // open file
        filehandle = fopen("Input_Data1.txt","r");

        // Read file line by line
        while (fgets(lyne,99,filehandle))
        {
            numprocess =
            printf("%s",lyne);
            item = strtok(lyne," ");
            p[reccount].arrivetime =atoi(item);

            item = strtok(NULL," ");
            p[reccount].bursttime =atoi(item);

            reccount++;
        }
        //Close file
        fclose(filehandle);
    }

我得到的错误是分段错误(核心转储)。
screen shot of the input file
我尝试从文件阅读execting与从用户输入读取相同的结果,但我得到了图像中显示的错误。

vlurs2pr

vlurs2pr1#

至少这些问题:

避免atoi(NULL)

item = strtok(lyne," ");可能会传回NULL
item = strtok(NULL," ");可能会传回NULL
我怀疑第二个应该是item = strtok(NULL," \n");

NULL == filehandle

打开可能失败。

reccount可能超过最大值
不需要-1

第一个

相关问题