【例10.5】有一个磁盘文件,内有一些信息。要求第1次将它的内容显示在屏幕上,第2次把它复制到另一个文件上。
#include<stdio.h>
int main()
{
FILE *fp1,*fp2;
char ch;
fp1=fopen("file1.dat","r");
fp2=fopen("file2.dat","w");
ch=getc(fp1);
while(!feof(fp1))
{
putchar(ch);
ch=getc(fp1);
}
putchar(10);
rewind(fp1);
ch=getc(fp1);
while(!feof(fp1))
{
fputc(ch,fp2);
ch=fgetc(fp1);
}
fclose(fp1);
fclose(fp2);
}
在VS2019下,需将源文件的fopen做些修改:
#include<stdio.h>
int main()
{
FILE* fp1, * fp2;
char ch;
fopen_s(&fp1, "file1.dat", "r");
fopen_s(&fp2,"file2.dat", "w");
ch = getc(fp1);
while (!feof(fp1))
{
putchar(ch);
ch = getc(fp1);
}
putchar(10);
rewind(fp1);
ch = getc(fp1);
while (!feof(fp1))
{
fputc(ch, fp2);
ch = fgetc(fp1);
}
fclose(fp1);
fclose(fp2);
}
例10.5检查打开文件是否成功:
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp1,*fp2;
char ch;
if((fp1=fopen("file1.dat","r"))==NULL)
{
printf("can't open file!\n");
exit(0);
}
if((fp2=fopen("file2.dat","w"))==NULL)
{
printf("can't open file!\n");
exit(0);
}
ch=getc(fp1);
while(!feof(fp1))
{
putchar(ch);
ch=getc(fp1);
}
putchar(10);
rewind(fp1);
ch=getc(fp1);
while(!feof(fp1))
{
fputc(ch,fp2);
ch=fgetc(fp1);
}
fclose(fp1);
fclose(fp2);
}
在VS2019下,需将源文件的fopen做些修改:
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE* fp1, * fp2;
char ch;
fopen_s(&fp1, "file1.dat", "r");
if (fp1 == NULL)
{
printf("can't open file!\n");
exit(0);
}
fopen_s(&fp2, "file2.dat", "w");
if (fp2 == NULL)
{
printf("can't open file!\n");
exit(0);
}
ch = getc(fp1);
while (!feof(fp1))
{
putchar(ch);
ch = getc(fp1);
}
putchar(10);
rewind(fp1);
ch = getc(fp1);
while (!feof(fp1))
{
fputc(ch, fp2);
ch = fgetc(fp1);
}
fclose(fp1);
fclose(fp2);
}