菜鸟求助:一道三级编程题
小弟做一道自觉简单的三级编程题,但总打不开数据文件“in.dat"(我是把它放在c:\turboc2\my下,用记事本编辑的),程序如下,哪位大侠能赐教应怎样修改?题目是:在文件in.dat中存放了一批正整数,ReadData()功能是将in.dat中数据读入数组a中,要求编写函数js(),功能是把a中合数置0;最后调用函数WriteDat()把数组a中的质数写入到文件out,dat中。
先不管gs()对不对,哪为大侠帮我看看为什么总显示打不开in.dat呢?
#include"stdio.h"
#include"math.h"
#define NUM 100
int a[NUM];
int gs=0;
int ReadData(void)
{
FILE *fp;
int i=0;
if ((fp=fopen("C:\turboc2\my\in.dat","r"))==NULL)
return 1;
while(!feof(fp))
{
fscanf(fp,"%d",&a[i]);
++i;
}
gs=i;
fclose(fp);
return 0;
}
int WriteDat(void)
{
FILE *fp;
int i;
if((fp=fopen("C:\turboc2\my\out.dat","w"))==NULL)
return 1;
for(i=0;i<gs;++i)
if(a[i]>0)
fprintf(fp,"%d",a[i]);
fclose(fp);
return 0;
}
void js(void)
{
int i=0,j;
while(a[i]!='\0')
{
for(j=2;j<a[i];j++)
if(a[i]%j==0) a[i]=0;
i++;
}
}
main()
{
if(ReadData())
{
printf("can't open in.dat!\n");
return;
}
js();
WriteDat();
}
----------------解决方案--------------------------------------------------------
if((fp=fopen("C:\turboc2\my\out.dat","w"))==NULL)
改成
if((fp=fopen("C:\turboc2\my\out.dat","rt+"))==NULL)
----------------解决方案--------------------------------------------------------
兄弟我帮不了你,因为我自己太菜,流这东东现在理解还不是很深。楼上的你能不能给讲讲你的学习心得。
----------------解决方案--------------------------------------------------------
georgezf 大侠,好象还不行啊
----------------解决方案--------------------------------------------------------
对了,我没看清楚,是改成:
if((fp=fopen("C:\\turboc2\\my\\out.dat","rt+"))==NULL)
\是转义符,要在语句钟表达\的话就要用\\
----------------解决方案--------------------------------------------------------
谢大侠了,小弟实在太菜,还是调试不出
----------------解决方案--------------------------------------------------------
你两个地方都改了嘛?还是只改了一个?
----------------解决方案--------------------------------------------------------
改了两个……
----------------解决方案--------------------------------------------------------
问题解决了,确是"\"的问题,改为"\\"就可以的得出结果来了,在此谢过大侠georgezf 了
----------------解决方案--------------------------------------------------------