【例10.2】将一个磁盘文件中的信息复制到另一个磁盘文件中。今要求将上例建立的file1.dat文件中的内容复制到另一个磁盘文件file2.dat中。
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *in,*out;
char ch,infile[10],outfile[10];
printf("输入读入文件的名字:");
scanf("%s",infile);
printf("输入输出文件的名字:");
scanf("%s",outfile);
if((in=fopen(infile,"rb"))==NULL)
{
printf("无法打开文件\n");
exit(0);
}
if((out=fopen(outfile,"wb"))==NULL)
{
printf("无法打开此文件\n");
exit(0);
}
ch=fgetc(in);
while(!feof(in))
{
fputc(ch,out);
putchar(ch);
ch=fgetc(in);
}
putchar(10);
fclose(in);
fclose(out);
return 0;
}
在VS2019下,需将源文件的fopen和scanf做些修改:
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE* in, * out;
char ch, infile[10], outfile[10];
printf("输入读入文件的名字:");
scanf_s("%s", infile, (unsigned int)sizeof(infile));
printf("输入输出文件的名字:");
scanf_s("%s", outfile, (unsigned int)sizeof(outfile));
fopen_s(&in, infile, "rb");
if (in == NULL)
{
printf("无法打开文件\n");
exit(0);
}
fopen_s(&out, outfile, "wb");
if (out == NULL)
{
printf("无法打开此文件\n");
exit(0);
}
ch = fgetc(in);
while (!feof(in))
{
fputc(ch, out);
putchar(ch);
ch = fgetc(in);
}
putchar(10);
fclose(in);
fclose(out);
return 0;
}