C语言有关文件的一段代码,运行错误!求拯救~~

编写程序,将1.txt复制到2.txt。要求 源文件名(1.txt)与目的文件名(2.txt)是在运行程序时由命令行输入
即从命令行界面输入 c:\tc>filecopy 1.txt 2.txt 问题是,我根本运行不到这,打开就是错误、、代码哪里有错。。
int main(int argc,char *argv[])
{
char ch;
FILE *fp1,*fp2;
if(argc!=3)
printf("Comand error!");
if((fp1=fopen(argv[1],"r"))==NULL)
perror("can not open1\n");
if((fp2=fopen(argv[2],"w"))==NULL)
perror("can not open2\n");
ch=fgetc(fp1);
while(!feof(fp1))
{
fputc(ch,fp2);
ch=getc(fp1);
}
printf("copy suceess!");

fclose(fp1);
fclose(fp2);
return 0;

代码没有问题,问题是运行方式:
1、打开command命令窗口(对于win7,点击《开始》,在最底侧的输入框中键入cmd,并<ENTER>)
2、利用操作系统键盘命令 x: (x为盘符,如C,D,E等)来到你编译程序默认的磁盘分区。
3、利用操作系统命令CD,进入到编译程序默认的目录。
4、利用操作系统命DIR查看是否有连接好了的.exe文件,比如cpp1.exe。
5、找到后,键入 cpp1.exe t1.txt t2.txt
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-06-04
可能是文件1.txt 2.txt 不存在,建议
if((fp2=fopen(argv[2],"w+"))==NULL),并且1.txt 要于filecopy.exe 在同一目录下

另外,不要用fgetc,用fgets(读取一整行)

按日志,是运行到 fopen.c 的第 53行出错
你数一下是不是 fope() 出错?
第2个回答  2014-06-04
把提示的错误给大家看看,你调试运行,能运行到哪一步?
相似回答