欢迎访问 水平网    今天是:2017年11月22日 注册 | 登录 | 订阅 | 收藏
>> C/S程序开发 >> C/C++ >> C语言基础教程:复制文本文件的内容到另一个文件
推荐文章
热点文章
专题
JQuery框架
Prototype.js
HTML5

C语言基础教程:复制文本文件的内容到另一个文件

作者:未知,  来源:网络,  阅读:941,  发布时间:2015-04-10 【放入收藏夹
#include"stdio.h"
main()
{FILE*fp_in,*fp_out;
charinfile[20],outfile[20];
p rintf("Entertheinfilename:\\n");
scanf("%s",infile);
p rintf("Entertheoutfilename:\\n");
scanf("%s",outfile);
if((fp_in=fopen(infile,"r"))==NULL)
{ printf("Can\'t openfile%s\\n",infile);
getchar();
exit(0);
}
if((fp_out=fopen(outfile,"w"))==NULL)
{ p rintf("can\'t openfile%s\\n",outfile);
getchar();
exit(0);
}
while(!feof(fp_in))fputc(fgetc(fp_in),fp_out);
fclose(fp_in);
fclose(fp_out);
}
以上程序是按文本文件方式处理的,也可以用此程序来复制一个二进制文件?只需将两个fopen函数的"r"和"w"分别改为"rb"和"wb"即可,此时,上述程序就相当于一条copy命令了

也可以在输入命令行时把两个文件名一起输入,这时要用到main函数的参数.程序可改为:
#include"stdio.h"
main(intargc,char*argv[])
{FILE*fp_in,*fp_out;
if(argc!=3)
{ p rintf("missingfilename:\\n");
exit(0);
}
if((fp_in=fopen(argv[1],"r"))==NULL)
{ p rintf("Can\'topenfile%s\\n",argv[1]);
getchar();
exit(0);
}
if((fp_out=fopen(argv[2],"w"))==NULL)
{ p rintf("can\'topenfile%s\\n",argv[2]);
getchar();
exit(0);
}
while(!feof(fp_in))
fputc(fgetc(fp_in),fp_out);
fclose(fp_in);
fclose(fp_out);
}
假若本程序的文件名为f12_2.c,经编译连接后得到的可执行文件名为f12_2.exe,现要把c:\\string.txt复制一份放到c:\\string2.txt中,则在Dos方式下,可以输入以下的命令行:
C>f12_2.exec:\\string.txtc:\\string2.txt
即在键入可执行文件名后,再把要操作的两个文件名作为参数输入,分别传送到main函数的形参argv[1]和argv[2]中,而argv[0]的内容为f12.exe,argc的值等于3(因为此命令行共有3个参数)?
为了书写方便,在stdio.h中,C语言已把fputc和fgetc定义为宏名 p utc和 getc:
#defineputc(ch,fp)fputc(ch,fp)
#definegetc(fp)fgetc(fp)
因此,用 putc和fputc,用 getc和fgetc是一样的?一般可以把它们作为相同的函数来对待
TGAS:C语言复制文本
评论【共有0条评论】查看所有评论
称呼:(*)   邮箱:   QQ:   验证码: 看不清楚?点击刷新验证码