c语言程序,把一个txt文件中的内容复制到另一个txt文件中!
运行正常的代码:#include<stdio.h>#include<stdlib.h>intmain(intargc,char*argv[]){charch[256];F...
运行正常的代码:
#include<stdio.h>
#include<stdlib.h>
int main(int argc,char *argv[])
{
char ch[256];
FILE *fp1;
FILE *fp2;
fp1=fopen(argv[1],"r");
fp2=fopen(argv[2],"r+");
while(fgets(ch,256,fp1)!=NULL)
{
puts(ch);
fputs(ch,fp2);
}
fclose(fp1);
fclose(fp2);
return 0;
}
运行出现的代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
char cha1[50];
char cha2[50];
gets(cha1);
gets(cha2);
char ch[256];
FILE *fp1;
FILE *fp2;
fp1=fopen(cha1,"r");
fp2=fopen(cha2,"r+");
while(fgets(ch,256,fp1)!=NULL)
{
puts(ch);
fputs(ch,fp2);
}
fclose(fp1);
fclose(fp2);
return 0;
}
为什么第二个代码会出现错误呢?通过命令行模式输入文件名和不通过命令行模式输入文件名有什么区别么?怎么修改第二个代码,才能实现正常运行呢? 展开
#include<stdio.h>
#include<stdlib.h>
int main(int argc,char *argv[])
{
char ch[256];
FILE *fp1;
FILE *fp2;
fp1=fopen(argv[1],"r");
fp2=fopen(argv[2],"r+");
while(fgets(ch,256,fp1)!=NULL)
{
puts(ch);
fputs(ch,fp2);
}
fclose(fp1);
fclose(fp2);
return 0;
}
运行出现的代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
char cha1[50];
char cha2[50];
gets(cha1);
gets(cha2);
char ch[256];
FILE *fp1;
FILE *fp2;
fp1=fopen(cha1,"r");
fp2=fopen(cha2,"r+");
while(fgets(ch,256,fp1)!=NULL)
{
puts(ch);
fputs(ch,fp2);
}
fclose(fp1);
fclose(fp2);
return 0;
}
为什么第二个代码会出现错误呢?通过命令行模式输入文件名和不通过命令行模式输入文件名有什么区别么?怎么修改第二个代码,才能实现正常运行呢? 展开
2个回答
展开全部
fp2=fopen(cha2,"a+");//追加方式打开,就可以了,测试通过
追问
编译是过了,可是第一个txt文件中的内容并没有复制到第二个txt中去呀?
而是用第一代码,能够完成复制操作!
追答
//怎么可能,我的怎么可以把文件一里面的内容,加到文件二
#include
#include
int main()
{
char cha1[50];
char cha2[50];
gets(cha1);
gets(cha2);
char ch[256];
FILE *fp1;
FILE *fp2;
fp1=fopen(cha1,"r");
fp2=fopen(cha2,"a+");
while(fgets(ch,256,fp1)!=NULL)
{
puts(ch);
fputs(ch,fp2);
}
fclose(fp1);
fclose(fp2);
return 0;
}
//先在E 建好文件 hello.txt hello1.txt
输入样式为e:\\hello.txt
e:\\hello1.txt
结果就显示出来
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询