c语言文件输入输出为什么不对
/*在程序的命令行输入两个文件的名字,如a.cb.c,将文件a.c的内容复制到文件b.c中。要求:(1)如果文件a.c不存在,给出提示,程序退出;(2)如果文件b.c不存...
/*在程序的命令行输入两个文件的名字,如a.c b.c,将文件a.c的内容复制到文件b.c中。
要求:
(1)如果文件a.c不存在,给出提示,程序退出;
(2)如果文件b.c不存在则创建之;如果文件b.c已经存在,提示是否覆盖。*/
#include<iostream>
#include<cstdlib>
using namespace std;
int main(int argc,char **argv)
{
FILE *in,*out;
if((out=fopen(argv[1],"w"))==NULL)
{
cout<<"文件不存在"<<endl;
exit(0);
}
in=fopen(argv[0],"r");
char ch;
ch=fgetc(out);
while(ch!=EOF)
{
fputc(ch,in);
ch=fgetc(out);
}
fclose(in);
fclose(out);
return 0;
} 展开
要求:
(1)如果文件a.c不存在,给出提示,程序退出;
(2)如果文件b.c不存在则创建之;如果文件b.c已经存在,提示是否覆盖。*/
#include<iostream>
#include<cstdlib>
using namespace std;
int main(int argc,char **argv)
{
FILE *in,*out;
if((out=fopen(argv[1],"w"))==NULL)
{
cout<<"文件不存在"<<endl;
exit(0);
}
in=fopen(argv[0],"r");
char ch;
ch=fgetc(out);
while(ch!=EOF)
{
fputc(ch,in);
ch=fgetc(out);
}
fclose(in);
fclose(out);
return 0;
} 展开
展开全部
#include<iostream>
#include<cstdlib>
using namespace std;
int main(int argc,char **argv){
FILE *in,*out;
if((out=fopen(argv[1],"r"))==NULL)
{
cout<<"文件不存在"<<endl;
exit(0);
}
in=fopen(argv[2],"w+");
char ch;
ch=fgetc(out);
while(ch!=EOF)
{
fputc(ch,in);
ch=fgetc(out);
}
fclose(in);
fclose(out);
return 0;
}
改成我这样就可以了。
测试结果如图:
展开全部
#include<iostream>
using namespace std;
int main(int argc,char **argv)
{ FILE *in,*out;
char ch;
if((in=fopen(argv[1],"r"))==NULL)
{ cout<<"文件不存在"<<endl;
exit(0);
}
if((out=fopen(argv[2],"r"))!=NULL)
{ cout<<"文件"<<argv[2]<<"已经存在,是否覆盖(Y/N)?";
ch=fgetc(stdin);
if(ch=='Y'||ch=='y')
{ fclose(out);
out=fopen(argv[2],"w");
}
else exit(0);
}
else out=fopen(argv[2],"w");
while((ch=fgetc(in))!=EOF)
fputc(ch,out);
fclose(in);
fclose(out);
return 0;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
读和写模式好像反了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询