读入txt文件

时间:2014-04-17 02:20:18

标签: c arrays loops

我是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", &current); 

while(b != -1){
    theGrades[sum] = current;
    sum++;
    b = fscanf(inFile, "%d", &current);
}
fclose(inFile);

for(int i=0;i<=sum;i++){
    printf("%d" + theGrades[i]);
}


}

2 个答案:

答案 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。