大家好,我是一童,今天分享文件中字符的读取,将写好的文件复制到一个新的文件中;
- 先介绍一个结构体;
typedef struct
{
short level;
unsigned flags;
char fd;
unsigned char hold;
short bsize;
unsigned char *buffer;
unsigned char*curp;
unsigned istemp;
short token;
}FILE;
这个结构体是编译系统中stdio.h头文件中所提供的,每一个FILE对应一个文件信息区;
-
函数
fopen(文件名,文件打开方式);//打开文件
fclose(文件指针);//关闭文件
fgetc(fp);// 从fp指针指向的文件中读文件
fputc(ch,fp);//把字符写入fp指向的文件中 -
代码:
<1> 写文件
#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE*fp;
char ch,filename[10];
printf("输入文件名: ");
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL)
{
printf("无法打开此文件!");
exit(0);
}
ch=getchar();
printf("输入将要存储在磁盘的字符“#”结束");
printf("\n");
ch=getchar();
while(ch!='#')
{
fputc(ch,fp);
putchar(ch);
ch=getchar();
}
fclose(fp);
printf("\n");
}
<2>复制文件
#include <stdio.h>//复制文件
#include <stdlib.h>
#define N 100
void main()
{
FILE*fp1,*fp2;
char ch,filename1[N],filename2[N];
printf("输入要读入的文件名:");
scanf("%s",filename1);
printf("输入要输出的文件名:");
scanf("%s",filename2);
if((fp1=fopen(filename1,"r"))==NULL)
{
printf("打不开此文件!!");
exit(0);
}
if((fp2=fopen(filename2,"w"))==NULL)
{
printf("打不开此文件!!");
exit(0);
}
while(!feof(fp1))//未到读入文件标志符
{
ch=fgetc(fp1);//获取字符
fputc(ch,fp2);// 写入文件
putchar(ch);//显示屏幕
}
putchar(N);
fclose(fp1);
fclose(fp2);
puts("\n");
}
- 截图
若有疑问,欢迎留言!!!