我是C的新手并且有以下问题。该程序应该从数据文件中读取考试分数并将输出存储到文本文件中。输出应该是等级的数量以及每个字母等级的数量。 每当我运行它,它就会崩溃。
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *inFile;
int current;
int sum = 0;
int b;
int theGrades[100];
inFile = fopen("a.txt", "r");
b = fscanf(inFile, "%d", ¤t);
while(b != -1){
theGrades[sum] = current;
sum++;
b = fscanf(inFile, "%d", ¤t);
}
fclose(inFile);
for(int i=0;i<=sum;i++){
printf("%d" + theGrades[i]);
}
}
答案 0 :(得分:2)
1)检查inFile(它必须是有效指针,而不是NULL)
2)检查总和计数器(必须<100)
3)printf("%d" + theGrades[i]);
- 你在做什么?您考虑过printf("%d", theGrades[i]);
吗?
答案 1 :(得分:1)
你的for循环需要帮助
for(int i=0;i<sum;i++){ //not <=
printf("%d ", theGrades[i]); // comma, not a plus sign
}
另外,检查fopen
是否有失败。确保您不要添加超过100个项目。使用EOF代替-1。