题目是将一个文件的内容复制到另一个文件,找不到哪里错了就是不成功,我照着书敲都瞧不出来。
#include
#include
int main ()
{
FILE *in,*out;
char ch;
char infile[20],outfile[20];
printf("请输入读入的文件名\n");
scanf("%s",infile);
printf("请输入读入的文件名\n");
scanf("%s",outfile);
if((in=fopen(infile,"r"))==NULL)
{
printf("文件打开失败!1");
exit(0);
}
if((in=fopen(outfile,"w"))==NULL)
{
printf("文件打开失败!2");
exit(0);
}
ch=fgetc(in);
while(!feof(in))
{
putchar(ch);
ch=fgetc(in);
fputc(ch,out);
}
putchar(10);
printf("复制成功!!");
return 0;
}
回答:关于文件读写,可以参考这个文章:https://www.runoob.com/cprogramming/c-file-io.html
代码如下(魔改了一部分,因为我对于C语言的一些库函数也不是特别熟悉):
# include <stdio.h>
int main()
{
FILE *in, *out;
char infile[20], outfile[20];
printf("请输入读入的文件名:");
scanf("%s", infile);
printf("请输入读入的文件名:");
scanf("%s", outfile);
if ((in = fopen(infile, "r")) == NULL)
{
printf("文件打开失败!1");
return 0;
}
if ((out = fopen(outfile, "w")) == NULL)
{
printf("文件打开失败!2");
return 0;
}
printf("复制开始!!\n");
char buff[1024];
fgets(buff, 1024, in);
fputs(buff, out);
fclose(in);
fclose(out);
printf("复制成功!!\n");
return 0;
}
然后,我改了半天发现是你有个地方写错了
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *in, *out;
char ch;
char infile[20], outfile[20];
printf("请输入读入的文件名\n");
scanf("%s", infile);
printf("请输入读入的文件名\n");
scanf("%s", outfile);
if ((in= fopen(infile, "r"))== NULL)
{
printf("文件打开失败!1");
exit(0);
}
if ((out= fopen(outfile, "w"))== NULL)
{
printf("文件打开失败!2");
exit(0);
}
ch = fgetc(in);
while (!feof(in))
{
putchar(ch);
ch = fgetc(in);
fputc(ch, out);
}
putchar(10);
printf("复制成功!!");
return 0;
}