当我试图运行循环算法时,我得到这个错误,当从用户那里获取输入时,算法工作得很好。这是代码:
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与从用户输入读取相同的结果,但我得到了图像中显示的错误。
1条答案
按热度按时间vlurs2pr1#
至少这些问题:
避免
atoi(NULL)
item = strtok(lyne," ");
可能会传回NULL
。item = strtok(NULL," ");
可能会传回NULL
。我怀疑第二个应该是
item = strtok(NULL," \n");
NULL == filehandle
?打开可能失败。
reccount
可能超过最大值不需要-1
第一个