文件输入输出问题
我写了一段程序:#include<stdio.h>
void main()
{ FILE*fp;fp=fopen("ddd","r");FILE*fq;fq=fopen("out","w");
char a[4];
fscanf(fp,"%s\n",a);
fprintf(fq,"%s\n",a);
fclose(fp);fclose(fq);
}
输入文件是:
eeeew
但输出是:
?
这是怎么回事啊。多谢大狭指教。
----------------解决方案--------------------------------------------------------
以下是引用光大在2006-7-5 22:03:38的发言:
#include<stdio.h>
void main()
{ FILE*fp1;fp1=fopen("ddd","r");FILE*fq2;fq2=fopen("out","w");
char a[4];
fscanf(fp1,"%s\n",a);
fprintf(fq2,"%s\n",a);
fclose(fp1);fclose(fq2);
}
#include<stdio.h>
void main()
{ FILE*fp1;fp1=fopen("ddd","r");FILE*fq2;fq2=fopen("out","w");
char a[4];
fscanf(fp1,"%s\n",a);
fprintf(fq2,"%s\n",a);
fclose(fp1);fclose(fq2);
}
----------------解决方案--------------------------------------------------------
还是不行啊.再一次麻烦你
----------------解决方案--------------------------------------------------------
以下是引用光大在2006-7-5 22:03:38的发言:
#include<stdio.h>
void main()
{ FILE *fp;fp=fopen("ddd","r");
char a[4];
int i;
for(i=0;i<4;i++)
scanf("%c",&a[i]);
fwrite(&a[0],sizeof(a[0],4,fp);
fread(&a[0],sizeof(a[0],4,fp);
for(i=0;i<4;i++)
printf("%c",a[i]);
fclose(fp);
}
#include<stdio.h>
void main()
{ FILE *fp;fp=fopen("ddd","r");
char a[4];
int i;
for(i=0;i<4;i++)
scanf("%c",&a[i]);
fwrite(&a[0],sizeof(a[0],4,fp);
fread(&a[0],sizeof(a[0],4,fp);
for(i=0;i<4;i++)
printf("%c",a[i]);
fclose(fp);
}
[此贴子已经被作者于2006-7-5 23:01:21编辑过]
----------------解决方案--------------------------------------------------------
也可以这样:
#include<stdio.h>
void main()
{ FILE *fp;
char a[4];
fp=fopen("ddd","w");
scanf("%s",a);
fprintf(fp,"%s\n",a);
fclose(fp);
getch();
}
#include<stdio.h>
void main()
{ FILE *fq;
char a[4];
fq=fopen("ddd","r");
fscanf(fq,"%s\n",a);
printf("%s",a);
fclose(fq);
getch();
}
这样就可以确定文件里面到底有没有写入我们要写的东西了
----------------解决方案--------------------------------------------------------
大哥,还是不行.我想从一个文件读入字符串然后输出到另一个中去.
----------------解决方案--------------------------------------------------------
#include<stdio.h>
void main()
{ FILE*fp;fp=fopen("ddd","r");FILE*fq;fq=fopen("out","w");
char a[4];
fscanf(fp,"%s\n",a);
fprintf(fq,"%s\n",a);
fclose(fp);fclose(fq);
}
字符数组a的长度定义小了!你的ddd文件中字符数超过4个了!所以运行时会出错的!改一个稍大点的数就可以运行了!
----------------解决方案--------------------------------------------------------