fscanf没法读入,能通过编译,运行时一闪而过

hit56工作室 2007-07-13 08:14:02
#include<stdio.h>
int main(void){
int i,j;
FILE *fp;
float a[2][2];
fp=fopen("in.txt","r"); /*在我的in.txt中是这样的: */
/* 0.934 0.374*/
/* 0.492 0.164*/
for(i=0;i<2;i++){
for(j=0;j<2;j++)
fscanf(fp,"%f",&a[j]);
fscanf(fp,"\n");
}
fclose(fp);
fp=fopen("out.txt","w");
for(i=0;i<2;i++){
for(j=0;j<2;j++)
fprintf(fp,"%f",a[j]);
fprintf(fp,"\n");
}
fclose(fp);
system("pause");
return 0;
}
...全文
291 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
uwinb 2007-07-17
  • 打赏
  • 举报
回复
在Dev-C++下编译运行都没有问题
在TC2.0下增加一句输入语句后也能正常运行
scanf("%d",&a[0][0]); /*这一行为新增的,运行时要在命令行输入一次数据*/
for(i=0;i<2;i++){
for(j=0;j<2;j++)
fscanf(fp,"%f",&a[i][j]);
fscanf(fp,"\n");
}
至于为什么,我也想不通!
hit56工作室 2007-07-17
  • 打赏
  • 举报
回复
TC2.0报的错是: 
 Scanf : floating point formats not linked
Abnormal program termination
Yao-debo 2007-07-16
  • 打赏
  • 举报
回复
运行时一闪而过 ?

在 main()函数快结束时加入 getchar() / getch()
lihx1430 2007-07-16
  • 打赏
  • 举报
回复
fscanf(fp,"%f",&a[j]);应改为fscanf(fp,"%f",&a[i][j]);
fprintf(fp,"%f",a[j]);应改为fprintf(fp,a[i][j]);
uwinb 2007-07-16
  • 打赏
  • 举报
回复
程序已经没有错了!就看你的运行效果了:
如果运行结果还是“一闪而过”,那是因为程序打开 in.txt 文件失败
如果运行后暂停,但没有显示,那么这是应该的,打开 out.txt 文件查看结果
hit56工作室 2007-07-16
  • 打赏
  • 举报
回复
#include<stdio.h>
int main(void){
int i,j;
FILE *fp;
float a[2][2];
if((fp=fopen("in.txt","r"))==NULL)
{printf("File Error!");
exit(1);
} /*在我的in.txt中是这样的: */
/* 0.934 0.374*/
/* 0.492 0.164*/
for(i=0;i<2;i++){
for(j=0;j<2;j++)
fscanf(fp,"%f",&a[i][j]);
fscanf(fp,"\n");
}
fclose(fp);
fp=fopen("out.txt","w");
for(i=0;i<2;i++){
for(j=0;j<2;j++)
fprintf(fp,"%f",a[i][j]);
fprintf(fp,"\n");
}
fclose(fp);
getch();
return 0;
}
改成上面的仍然不行啊
飞哥 2007-07-15
  • 打赏
  • 举报
回复
具体元素加 &
hit56工作室 2007-07-15
  • 打赏
  • 举报
回复
改为a[i][j]也没用啊
uwinb 2007-07-13
  • 打赏
  • 举报
回复
所有写 a[j] 的地方替换成 a[i][j]

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧