| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2067 人关注过本帖
标题:读入文件出错怎么回事?
取消只看楼主 加入收藏
ChinaTang
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-7-5
收藏
 问题点数:0 回复次数:4 
读入文件出错怎么回事?

读入文件出错怎么回事?

程序调试都没出错,可是一运行就弹这个错误,要关闭。不知什么原因啊。就下面这个错误。in.dat在所在文件夹里。难道是in.dat数据格式错误,但是不会啊。
Debug Assertion Failed!
Program:E:\temp\aaaa\Debug\aaa.exe
file:fscanf.c
Line:54
expression:stream!=NULL
For information on how your program can cause an assertion failure,see the Visual C++ documentation on asserts.
下面是我的全部代码:

#include <stdio.h>
int a[300],cnt=0;
double pjz1=0.0,pjz2=0.0;
jsValue()
{int i,k,l,m,n,p=0;
for(i=0;i<300;i++)
{ k=a[i]/1000;
l=a[i]%1000/100;
m=a[i]%100/10;
n=a[i]%10;
if((k+n)==(l+m))
{cnt++;
pjz1+=a[i];
}
else {p++;pjz2+=a[i];}
}
pjz1/=cnt;
pjz2/=p;
}
main()
{
int i;
readDat();
jsValue();
writeDat();
printf("cnt=%d\n满足条件的平均值pzj1=%7.21f\n不满足条件的平均值pjz2=%7.21f\n" ,cnt,pjz1,pjz2);
}
readDat()
{
FILE *fp;
int i;
fp=fopen("in.dat" ," r" );
for( i=0;i<300;i++) fscanf(fp,"%d",&a[i]);
fclose(fp);
}
writeDat()
{
FILE *out;
int i;
out=fopen(" out.dat" ," w" );
fprintf(out," %d\n%7.21f\n%7.21f\n" ,cnt,pjz1,pjz2);
fclose(out);
}

[此贴子已经被作者于2006-7-23 1:50:29编辑过]

搜索更多相关主题的帖子: 入文件 dat Debug Assertion 
2006-07-23 01:45
ChinaTang
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-7-5
收藏
得分:0 
数据输入格式就那么几种啊.这应该是哪种啊

2006-07-23 13:53
ChinaTang
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-7-5
收藏
得分:0 
IN.DAT中存有300个四位数
函数jsValue()求出千位数上的数加个位数等于百位数上的数加十位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数把结果输出到OUT.DAT文件。
例如:6712,6+2=7+1,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。8129,8+9<>1+2,则该数不满足条件计算平均值pjz2.

2006-07-23 17:16
ChinaTang
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-7-5
收藏
得分:0 
以下是引用穆扬在2006-7-23 15:55:38的发言:
你没懂我的意思
我是说
比如
如果你的scanf 用%d
而你的文件中写的是 4,5,6
难道不能说你的数据文件格式有错吗
里面的格式是以空格来作分隔符的,那应该没问题。(是不是"%d ,"就可以用4,5,6来表示。)
我现在在想会不会不是输入文件的格式不对,而是本身代码的问题?

2006-07-23 19:38
ChinaTang
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-7-5
收藏
得分:0 
以下是引用lhyanlh在2006-7-24 9:05:51的发言:

如果上述的代码是你正在运行的,希望你以后注意下空格!
fp=fopen("in.dat" ,"r" );
out=fopen("out.dat" ,"w" );
"r", "w"前不要加空格!文件名out.dat前也不加空格!

谢谢提醒啊,这个题居然就是这个问题!!"r", "w"前我加了一个空格,后来就死也找不出来问题出在什么地方,要不是你这个提醒,真不知要多久才发现,真晕!
感谢啊!!这里细心人好心人真多啊


2006-07-24 19:49
快速回复:读入文件出错怎么回事?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030037 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved