作者在 2013-05-12 11:43:36 发布以下内容
/*
编写一个文件复制程序.
提示用户输入源文件名和输出文件名
在向输出文件写入时,程序应当使用 ctype.h 中定义的 toupper()函数将所有的文本转换成大写
使用标准I/O和文本模式
*/
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#define SIZE 40
void copy(char *, char *);
int main(int argc, char **argv)
{
char source[SIZE]; //源文件名
char target[SIZE]; //目的文件名
printf("Enter source file name: ");
scanf("%s", source);
printf("Enter target file name: ");
scanf("%s", target);
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 ch;
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((ch = getc(fps)) != EOF)
putc(toupper(ch), fpt); /*将小写转换为大写写入目标文件*/
fclose(fps); /*关闭文件*/
fclose(fpt);
}