C语言文件输入输出,这个代码哪里错了?

#include<stdio.h>
int main()
{
FILE *in, *out;
char inname[20], outname[20];
char ch;
printf("请输入复制的文件名:\n");
scanf("%s",inname);
printf("请输入输出文件的名字:\n");
scanf("%s",outname);
if(in=fopen(inname,"r")==NULL)
{
printf("文件出错了\n");
exit(0);
}
if(out=fopen(outname,"w")==NULL)
{
printf("文件出错了\n");
exit(0);
}
while(!feof(in))
{
ch=fgetc(in);
fputc(ch,out);
}
putchar(10);
fclose(in);
fclose(out);
return 0;
}
我想把一个文件的内容复制到另一个文件里面,这个代码可以编译且运行,就是不成功,代码贴上来了,你们去试一下。

第1个回答  2015-03-10
if(in=fopen(inname,"r")==NULL)

不建议这样的写法,最好改成两行,这样编译器不容易误解:
in=fopen(inname,"r");
if(in==NULL)
第2个回答  2015-03-10
if( (in=fopen(inname,"r")) ==NULL) //注意要括起来,==优先级高于=, 下同!!
{
printf("文件出错了\n");
exit(0);
}
if( (out=fopen(outname,"w")) ==NULL) //同上
{
printf("文件出错了\n");
exit(0);
}本回答被提问者采纳
相似回答