文件的读写API函数

#include "stdio.h"
#include "stdlib.h"
#include "string.h"

void main_fputc()
{
	FILE *fp = NULL;
	char s[] = "1234567890";
	int i = 0;
	char* filename = "c:/1.txt";

	fp = fopen(filename,"r+");
	
	if(fp == NULL)
	{
		printf("func fopen error!\n");
		return ;
	}

	printf("fopen success\n");

	for(i=0;i<strlen(s);i++)
	{
		fputc(s[i],fp);
	}

	fclose(fp);	
}

void main_fgetc()
{
	FILE *fp = NULL;
	char s;
	int i = 0;
	char* filename = "c:/1.txt";
	fp = fopen(filename,"r+");
	
	if(fp == NULL)
	{
		printf("func fopen error!\n");
		return ;
	}

	printf("fopen success\n");

	while(!feof(fp)){
		s = fgetc(fp);
		printf("%c",s);
	}

	printf("\n");

	fclose(fp);	
}

void main_fputs()
{
	FILE *fp = NULL;
	char s[] = "1234567890";
	int i = 0;
	char* filename = "c:/1.txt";

	fp = fopen(filename,"r+");
	
	if(fp == NULL)
	{
		printf("func fopen error!\n");
		return ;
	}

	printf("fopen success\n");

	fputs(s,fp);

	fclose(fp);	
}

void main_fgets()
{
	FILE *fp = NULL;
	char from[1024];
	int i = 0;
	char* filename = "c:/1.txt";
	fp = fopen(filename,"r+");
	
	if(fp == NULL)
	{
		printf("func fopen error!\n");
		return ;
	}

	printf("fopen success\n");

	while(!feof(fp))
	{
		char *p = fgets(from,40,fp);

		if( p == NULL )
		{
			goto End;
		}
		printf("%s",from);
		//printf("\n");
	}
	
End:
	fclose(fp);	
}
typedef struct Tea{
	char name[64];
	int age;

}Tea;
//直接把内存数据写入文件
void main_fwrite()
{
	Tea array[3];
	FILE *fp = NULL;
	char from[1024];
	int i = 0;
	char* filename = "c:/3.data";
	int tempcount = 0;

	for(i=0;i<3;i++)
	{
		sprintf(array[i].name,"%d%d%d",i+1,i+1,i+1);
		array[i].age =  i + 31;
	}

	fp = fopen(filename,"wb");
	
	if(fp == NULL)
	{
		printf("func fopen error!\n");
		return ;
	}

	printf("fopen success\n");

	for(i=0;i<3;i++)
	{
		//返回值 写入成功的次数
		tempcount = fwrite(&array[i],sizeof(Tea),1,fp);
	}

	if( fp != NULL )
		fclose(fp);	
}

void main_fread()
{
	Tea array[3];
	FILE *fp = NULL;
	char from[1024];
	int i = 0;
	char* filename = "c:/3.data";
	int tempcount = 0;

/*	for(i=0;i<3;i++)
	{
		sprintf(array[i].name,"%d%d%d",i+1,i+1,i+1);
		array[i].age =  i + 31;
	}*/

	fp = fopen(filename,"rb");
	
	if(fp == NULL)
	{
		printf("func fopen error!\n");
		return ;
	}

	printf("fopen success\n");

	for(i=0;i<3;i++)
	{
		//返回值 写入成功的次数
		tempcount = fread(&array[i],sizeof(Tea),1,fp);
	}

	for(i=0;i<3;i++)
	{
		//sprintf(array[i].name,"%d%d%d",i+1,i+1,i+1);
		//array[i].age =  i + 31;
		printf("name:%s,age:%d\n",array[i].name,array[i].age);
	}

	if( fp != NULL )
		fclose(fp);	
}

void main()
{
//按字符操作文件
	//main_fputc();
	//main_fgetc();
//按行操作文件
	//main_fputs();
	//main_fgets();
//按块操作文件
	main_fwrite();
	main_fread();
	system("pause");
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值