【发布时间】:2025-12-15 19:05:02
【问题描述】:
我是 C 初学者,我尝试编写代码以从文件中读取浮点数,从单独的行中读取,这是我的尝试
#include <stdio.h>
#include<math.h>
int main (void)
{
FILE *fb;
FILE *fp;
fb=fopen("sumsquaresin.txt","r");
fp=fopen("q1out.txt","w");
float x,y,z = 0.0;
int n = 1.0,result;
result =fscanf(fb,"%f",&x);
while(result!=EOF)
{
y=pow(x,2.0);
z+=y;
if(result == EOF)
break;
n++;
}
fprintf(fp,"%d were read\n",n);
fprintf(fp,"The sum of squares is %.2f\n",y);
fclose(fb);
fclose(fp);
return 0;
}
我不断收到 NULL 和在线绿色错误:
result =fscanf(fb,"%f",&x);
错误信息显示“线程 EXC_BAD_ACCESS(code=1,address=0x68”
任何帮助将不胜感激,谢谢
【问题讨论】:
-
循环中
result没有任何变化;如果进入循环,则不会退出循环。假设您成功打开它,您也只会从文件中读取第一个数字。您可能应该使用while (fscanf(fb, "%f", &x) == 1) { ... }来控制循环。
标签: c file while-loop eof