大家好,我是一童,今天分享文件中字符的读取,将写好的文件复制到一个新的文件中;

  1. 先介绍一个结构体;
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对应一个文件信息区;

  1. 函数
    fopen(文件名,文件打开方式);//打开文件
    fclose(文件指针);//关闭文件
    fgetc(fp);// 从fp指针指向的文件中读文件
    fputc(ch,fp);//把字符写入fp指向的文件中

  2. 代码:

<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");
}
  1. 截图

C语言实例028-LMLPHP

C语言实例028-LMLPHP

C语言实例028-LMLPHP

若有疑问,欢迎留言!!!

11-24 12:23