我必须制作一个用 C 语言编写的程序,该程序将读取并打印出文本文件中的一些内容。
但是由于某种原因,下面程序的 2 个功能不起作用。案例 3 工作正常。但另外 2 个不打印任何内容或仅打印 1 个名称。这怎么可能,我该如何解决。
顺便说一句,我没有收到任何错误。
#include <stdio.h>
main()
{
FILE *list;
int number, menu, total;
char name[20];
list = fopen("C:\\PATH\\TO\\FILE", "r");
printf("Menu: \n"\n);
printf("[1] Positive total: \n");
printf("[2] Negative total: \n");
printf("[3] Total: \n");
printf("[4] Quit \n\n");
printf("Choose: 1,2,3 or 4:\n");
scanf("%d", &menu);
while (menu!=4)
{
fscanf(list, "%d%s%d", &number, name, &total);
switch(menu)
{
case 1: printf("Negative total \n");
while(!feof(list))
{
if (total<0)
{
printf("-%6d%-15s%6d\n", number, name , total);
fscanf(list, "%d%s%d", &number, name, &total);
}
}
break;
case 2: printf("Positive: \n");
while(!feof(list))
{
if (total>=0)
{
printf("-%6d%15s%6d\n", number, name , total);
fscanf(list, "%d%s%d", &number, name, &total);
}
}
break;
case 3: printf("Total: \n");
while(!feof(list))
{
printf("-%6d%15s%6d\n", number, name , total);
fscanf(list, "%d%s%d", &number, name, &total);
}
break;
}
rewind(list);
printf("\nChoose again, 1, 2, 3, 4: ");
scanf("%d", &menu);
}
printf("End of Program");
fclose(list);
return 0;
}
文本文件包含数字、姓名、他们拥有的总金额(您可以将其视为银行系统)。这是文本文件:
5892 John +7250
5893 Kate -94
5894 Mike +324
5895 Jack +9570
5896 Anne +800