void test_copy_image()
{
char *file_name1 = (char*)calloc(30, sizeof(char));//目标文件的文件名
char *file_name2 = (char*)calloc(30, sizeof(char));//新建文件的文件名
char ch; //复制文件的中间变量
FILE *fp1 = NULL, *fp2 = NULL; //fp1为目标文件,fp2为新建文件
printf("Input orgial image name:");
scanf("%s", file_name1); //输入目标文件的文件名
fflush(stdin); //清空键盘缓冲区
printf("Input want to save image name:");
scanf("%s", file_name2); //新建文件的文件名
fflush(stdin); //清空键盘缓冲区
if ((fp1 = fopen(file_name1, "r")) == NULL) //以“读”方式打开目标文件,并判断打开是否出错
{
printf("error!");
exit(0);
}
if ((fp2 = fopen(file_name2, "w")) == NULL) //以“写”方式打开新建文件
{
printf("error!");
exit(0);
}
while (!feof(fp1)) //开始复制,以feof判断是否复制结束。
{
ch = fgetc(fp1);
fputc(ch, fp2);
}
if (feof(fp1)) //判断是否复制成功
{
printf("Copy success, program end!\n");
}
else
{
printf("error!!");
}
fclose(fp1);
fclose(fp2);
}
直接调用这个函数,然后输入一个原始图片名字和保存图片的名字
测试是可以正常保存的。 |