作者在 2013-05-12 11:18:05 发布以下内容
C++
/*
编写一个文件复制程序.程序需要从命令行获得源文件名和目的文件名.
尽可能使用标准I/O和二进制模式.
*/
/*
判断参数
将参数分别存入字符串数组
只读方式打开源文件
写方式打开目的文件
读取源文件内容
将读取的内容写入目的文件
关闭文件
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define SIZE 40
#define BUFSIZE 1024
void copy(char *, char *);
int main(int argc, char **argv)
{
char source[SIZE]; //源文件名
char target[SIZE]; //目的文件名
if(argc != 3)
{
fprintf(stderr, "Wrong number of parameters!\n");
exit(1);
}
strcpy(source, argv[1]);
strcpy(target, argv[2]);
if(!(strcmp(source, target)))
{
fprintf(stderr, "Cannot copy to itself!\n");
exit(2);
}
copy(source, target);
puts("Done.");
return 0;
}
void copy(char * source, char * target)
{
FILE * fps, * fpt;
char temp[BUFSIZE];
if((fps = fopen(source, "r")) == NULL)
{
fprintf(stderr, "Can't open file %s.\n", source);
exit(3);
}
if((fpt = fopen(target, "w")) == NULL)
{
fprintf(stderr, "Can't create file %s.\n", target);
exit(3);
}
while(fgets(temp, BUFSIZE, fps) != NULL)
fputs(temp, fpt);
fclose(fps);
fclose(fpt);
}
C++