C语言文件操作详解

一、
在这里插入图片描述
二、
在这里插入图片描述
在这里插入图片描述
三、
在这里插入图片描述
文件的打开:

void print()
{
	FILE *fp=fopen("text2.txt","r");//打开;
	char c;
	while((c=fgetc(fp))!=EOF)
	putchar(c);
	fclose(fp);// 关闭;
	return ;
}

四、
在这里插入图片描述
fgetc 和 fputc 读入一个字符;

void add()
{
	FILE *fp=fopen("text.txt","w");
	if(fp==NULL) printf("error!\n");
	else
	{
		while(1)
		{
			char c=getchar();
			if(c=='#') break;
			fputc(c,fp);
			putchar(c);
		}
	}
	fclose(fp);
	return ;
}

五、
在这里插入图片描述
示例:文件的copy:

void copy()
{
	FILE *in=fopen("text.txt","r"), *out=fopen("text2.txt","w");
	while(!feof(in))//使用feof判断文件是否结束;
	fputc(fgetc(in),out);
	print();
	fclose(in);fclose(out);
	return ;
}

六、
在这里插入图片描述
示例:

//假如说有一个存储人们信息的文件;
struct pre{
	int data;
	char name[11];
	char num[11];
};
struct pre a[101],b[101];
void save(int n)//信息的存储;
{
	FILE *fp=fopen("people.txt","wb");
	for(int i=0;i<n;i++)
	fwrite(&a[i],sizeof(struct pre),1,fp);
	fclose(fp);
	return ;
}
void display(int n)//从文件中读入;
{
	FILE *fp=fopen("people.txt","rb");
	int i=0;
	while(!feof(fp))
	{
		fread(&a[i],sizeof(struct pre),1,fp);
		printf("%s %s %d\n",a[i].num,a[i].name,a[i].data);
		i++;
	}
	fclose(fp);
	return ;
}
void people()
{
	int n;
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	scanf("%s%s%d",a[i].num,a[i].name,&a[i].data);
	save(n);
	display(n);
	return ;
}

七、
在这里插入图片描述
示例:

void form()
{
	FILE *fp=fopen("text.txt","w");
	char a[11];
	int b;
	fscanf(stdin,"%s%d",a,&b);//read from keyboard;
	fprintf(fp,"%s %d",a,b);//put into the file;
	fclose(fp);
	fp=fopen("text.txt","r");
	fscanf(fp,"%s%d",a,&b);//read from the file;
	fprintf(stdout,"%s %d",a,b);//print to screen;
	fclose(fp);
	return ;
}

八、
在这里插入图片描述
fgets和fputs是每次操作一行字符;

示例:

void read_str()
{
	FILE *fp=fopen("text.txt","w");
	char a[81],b[81];
	scanf("%s%s",a,b);
	fputs(a,fp);
	fputs("\n",fp);
	fputs(b,fp);
	fclose(fp);
	fp=fopen("text.txt","r");
	while(fgets(a,81,fp)!=NULL)
	printf("%s",a);
	fclose(fp);
	return ;
}

九、
在这里插入图片描述
示例:

void back()
{
	FILE *fp=fopen("text.txt","w");
	char a[81];
	scanf("%s",a);
	fputs(a,fp);
	fputs("\n",fp);
	fclose(fp);
	fp=fopen("text.txt","r");
	while(fgets(a,81,fp)!=NULL)
	printf("%s",a);
	rewind(fp);//  重置文件指针到文件开头; 
	while(fgets(a,81,fp)!=NULL)
	printf("%s",a);
	fclose(fp);
	return ;
}

十、
在这里插入图片描述
在这里插入图片描述
不过感觉基本上读取文件没啥错。。。。
在这里插入图片描述
基本没用过。。。

总结下:

我们有
fopen 和 fclose
fscanf 和 fprintf
fgetc 和 fputc
fgets 和 fputs
fwirte 和 fread
fseek 和 ftell
ferror
feof
clearerr

好多。。。?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值