一个简单的实现文件复制的c语言程序
程序如下#include<stdio.h>#include<stdlib.h>intmain(){FILE*in,*out;charch,infile[10],outfi...
程序如下
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE*in,*out;
char ch,infile[10],outfile[10];
scanf("%s",infile);
getchar();
scanf("%s",outfile);
in=fopen(infile,"rb");
out=fopen(outfile,"w");
ch=fgetc(in);
while(!feof(in))
{
fputc(ch,out);
ch=fgetc(in);
}
fclose(in);
fclose(out);
return 0;
}
运行的时候报错,如图
菜鸟求解是什么原因,谢谢 展开
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE*in,*out;
char ch,infile[10],outfile[10];
scanf("%s",infile);
getchar();
scanf("%s",outfile);
in=fopen(infile,"rb");
out=fopen(outfile,"w");
ch=fgetc(in);
while(!feof(in))
{
fputc(ch,out);
ch=fgetc(in);
}
fclose(in);
fclose(out);
return 0;
}
运行的时候报错,如图
菜鸟求解是什么原因,谢谢 展开
展开全部
in和out在赋值后要检查是否正确,遇到调用fopen不成功的你的程序就会崩溃。
解决办法是
加一句在fopen后面
if(in == NULL || out ==NULL) return 0;
另外,注意fopen里的路径要写成类似 c:\\a.txt 之类的
解决办法是
加一句在fopen后面
if(in == NULL || out ==NULL) return 0;
另外,注意fopen里的路径要写成类似 c:\\a.txt 之类的
追问
加了这句还是有同样的情况出现阿
我有句打错了不好意思
out=fopen(outfile,"w");应该是out=fopen(outfile,"wb");
我用的是VC studio 2010
追答
我用vs08调试了下正常的。
是不是输入infile和outfile的时候越界了?注意你的定义:
infile[10],outfile[10];
只有10个字符长,除掉结束符,可用的只有9个。假如我输入一个d:\\test.in 这样的就超了,程序会崩溃
展开全部
你这不是文件的内容复制!!!!就是一个程序!!
in=fopen(infile,"rb");
out=fopen(outfile,"w");
文件打开函数都是错的!!
你建两个Txt文档,分别叫infil和eoutfile,在infil里写点东西...
然后写程序:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE in,out;
char ch,infile[10],outfile[10];
scanf("%s",infile);
getchar();
scanf("%s",outfile);
/******************** 修改的地方 ******************************
in=fopen("infile.txt","rb");
out=fopen("outfile.txt","wb");
/****************** 文件打开后要判断是否成功***************************/
ch=fgetc(in);
while(!feof(in))
{
fputc(ch,out);
ch=fgetc(in);
}
fclose(in);
fclose(out);
return 0;
}
in=fopen(infile,"rb");
out=fopen(outfile,"w");
文件打开函数都是错的!!
你建两个Txt文档,分别叫infil和eoutfile,在infil里写点东西...
然后写程序:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE in,out;
char ch,infile[10],outfile[10];
scanf("%s",infile);
getchar();
scanf("%s",outfile);
/******************** 修改的地方 ******************************
in=fopen("infile.txt","rb");
out=fopen("outfile.txt","wb");
/****************** 文件打开后要判断是否成功***************************/
ch=fgetc(in);
while(!feof(in))
{
fputc(ch,out);
ch=fgetc(in);
}
fclose(in);
fclose(out);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询