文件管理--fscanf,fread,fwrite和fprintf

26 篇文章 0 订阅
19 篇文章 0 订阅
  • fprintf函数:对于fprintf函数,它和printf一样,但是它的表达式为:int fprintf ( FILE * stream, const char * format, ... );和printf的很相似,但有不一样。它是格式化输出函数,代码为:
    #include<stdio.h>
    
    struct S
    {
    	char name[10];
    	int age;
    	int score;
    };
    
    //主函数
    int main()
    {
    	struct S s = { "张三",20,78 };
    	//打开文件
    	FILE* pf = fopen("test.txt", "w");
    	if (pf == NULL)
    	{
    		perror("fopen");
    		return 1;
    	}
    
    	//写文件--以文本的形式写出来的
    	fprintf(pf,"%s %d %d", s.name, s.age, s.score);
    	//关闭文件
    	fclose(pf);
    	pf = NULL;
    	return 0;
    
    }

    有输出函数,就有输入函数。

  • fscanf就是一个格式化输入函数,它的表达式:

则它的代码为:

#include<stdio.h>

struct S
{
	char name[10];
	int age;
	int score;
};

//主函数
int main()
{
	struct S s = { 0 };
	//打开文件
	//想从文件中读取数据放在s中。
	FILE* pf = fopen("test.txt", "r");
	if (pf == NULL)
	{
		perror("fopen");
		return 1;
	}

	//读文件--以文本的形式读出来的
	fscanf(pf, "%s %d %d", (s.name), &(s.age), &(s.score));
	//name为数组不需要取地址,但其它的就要
	//打印
	
	printf("%s %d %d", s.name, s.age, s.score);


	//关闭文件
	fclose(pf);
	pf = NULL;
	return 0;

}

这个就是fscanf的代码,其实只要记住它是如何表达的,就行了。

  • fwrite函数:它的表达式就比较繁琐,需要字符的大小,和字符的个数。则代码为:
    #include<stdio.h>
    
    //fwrite函数的使用
    
    int main()
    {
    	int arr[] = { 1,2,3,4,5 };
    	FILE* pf = fopen("test.txt", "wb");//wb代表二进制的写
    	if (pf == NULL)
    	{
    		perror("fopen");
    		return 1;
    	}
    	//写数据
    
    	int sc = sizeof(arr) / sizeof(arr[0]);
    	fwrite(arr, arr[0], sc,pf);
    
    	//关闭文件
    	fclose(pf);
    	pf = NULL;
    	return 0;
    }

    二进制的方法写进去,我们是看不懂的:所以,二进制的我们很少使用。

  • fread的函数:它的表达式为:和fwrite差不多,但又有区别。它是二进制输入,则读出的代码为:

    
    #include<stdio.h>
    
    
    int main()
    {
    	int arr[5] = { 0 };
    	FILE* pf = fopen("test.txt", "rb");//wb代表二进制的写
    	if (pf == NULL)
    	{
    		perror("fopen");
    		return 1;
    	}
    	//读数据
    	int sc = sizeof(arr) / sizeof(arr[0]);
    	fread(arr, sizeof arr[0], sc, pf);
    	int i = 0;
    	//利用循环来读出arr
    	for (i = 0; i < sc; i++)
    	{
    		printf("%d\n", arr[i]);
    
    	}
    
    	//关闭文件
    	fclose(pf);
    	pf = NULL;
    	return 0;
    }

    这就是二级制的读去文件。

  • 对于上述的四个函数:fscanf,fread,fwrite和fprintf,本质就是读或写。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值