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;
}
展开
 我来答
happy六角恐龙
2018-12-20 · 超过10用户采纳过TA的回答
知道答主
回答量:40
采纳率:57%
帮助的人:10.5万
展开全部
#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;
}

改成我这样就可以了。

测试结果如图:

听不清啊
高粉答主

2018-12-20 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
#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;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wukong6633159
2018-12-20 · 超过47用户采纳过TA的回答
知道答主
回答量:225
采纳率:40%
帮助的人:35.5万
展开全部
读和写模式好像反了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式