[英]Reading and adding integers read from a file in C
所以我读过很多类似的文章,但是我无法确定我的问题在这里。
{
FILE * fp;
fp = fopen("integer_store.txt", "r");
int total;
int i;
clock_t start, end;
double time;
start = clock();
fscanf(fp, "%d", &i);
while(!feof(fp)) {
fscanf(fp, "%d", &i);
total = total + i;
}
end = clock();
time = ((double)(end-start)) / CLOCKS_PER_SEC;
printf("Total: %d\n",total);
printf("Execution time: %f seconds \n",time);
fclose(fp);
}
目标是将所有数字的总和打印在一个用空格分隔的ASCII数字文件中……一切似乎都可以正常工作,除了每次运行它时,对于同一个文件我都会得到不同的总数。
请初始化变量total
例如int total = 0;
第一。
此外,您应该检查fopen
成功( fp
不是NULL
)。
您永远不会初始化total
所以您要增加随机内存。
total
未初始化为0。
试试这个声明:
int total = 0;
只是为了补充说明,在C和C ++中,任何尚未初始化的变量DOES实际上都有一个值,并且该值是随机的。 这就是为什么每次运行该程序都会得到不同的结果的原因。
如果需要更多说明,请查看此: https : //en.wikipedia.org/wiki/Uninitialized_variable
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.