在这个函数中,我正在向屏幕显示一个.txt文档,但是,我正在尝试读取文件文档并扫描文档中的单词EMPTY,因为我将它保存为字符串变量。应该注意的是,我正计算EMPTY在文件中的时间,然后打印文件中的时间以及另一件事。我的第一个问题是我这样做是正确的吗?
void allSeats(void)
{
int position = 0;
int count = 0;
char gone[6] = "EMPTY";
system("cls");
retry:
fseatArrangement = fopen("airlineSeatingArrangment.txt", "r");
while (fgets(econoAirSeatArrangement, 1000, fseatArrangement) != NULL)
printf(econoAirSeatArrangement);
fclose(fseatArrangement);
while (count < FULL)
{
fgets(econoAirSeatArrangement, 1000, fseatArrangement);
fscanf(fseatArrangement,"%s", &gone);
count++;
}
printf("There are %d seats vacant at the moment\nThere are %d seats with no vacancy at the moment \n",count, FULL-count);
printf("Enter Zero(0) Key to return to menu at anytime.");
scanf("%d", &position);
if (position == 0)
{
system("cls");
menu();
}
else
{
system("cls");
printf("INVALID INPUT! Please try again.\n");
goto retry;
}
system("pause");
return;
}
答案 0 :(得分:1)
主要问题在这里
fgets(econoAirSeatArrangement, 1000, fseatArrangement);
您已使用fclose()
关闭了文件指针,但是,您尝试使用它。它会导致undefined behavior。
那就是说,
printf(econoAirSeatArrangement);
出现错误。如果您不希望有任何格式转换规范,可以坚持使用puts()
。fopen()
,fgets()
,fscanf()
等的返回值是否成功。