C语言读写文件函数

本文详细介绍了C语言中常用的文件操作函数,包括单字符和字符串读写、格式化输入输出(fprintf和fscanf)、以及二进制数据的读写(fwrite和fread)。这些函数适合有一定C语言基础的学习者,对文件处理有实践指导价值。
摘要由CSDN通过智能技术生成

使用C语言对文件进行操作的情况较少,对文件函数的使用就会较少,为了方便复习,我把一些常用的文件读写函数汇总在一起,有一些参数介绍相对笼统,但是不影响函数的使用。同样本篇还是最适用于有一定C语言基础的同学哦,如有不足还望指出纠正。

1. 单个字符读写函数

int fputc(int character, FILE*stream);

第一个参数是字符的阿斯克码值,第二个参数是需要写入的文件的文件指针

函数写入成功会返回写入字符的阿斯克码值,否则返回EOF

int fgetc(FILE*stream);

函数的参数是一个文件指针。

如果读取成功,函数返回值是读取到的字符的阿斯克码值,失败则返回EOF

2. 字符串读写函数

int fputs(const char* str, FILE* stream);

字符串写入函数,第一个参数是要写入的字符串,第二个参数是文件指针

函数执行成功,返回一个非负数,失败返回EOF

char* fgetc(char* str, int num, FILE*stream);

第一个参数是读取到的字符串拷贝的地址、第二个参数是最大的字符个数(包含'\0')、第三个参数是文件指针。

如果函数执行成功,函数返回str的起始地址,失败则返回NULL

3. 格式化输入输出函数

fprintffscanf函数分别是向文件中格式化输出数据和格式化输入数据,第一个参数都是文件指针,后面的参数跟printfscanf的用法一致

fprintf函数例子:

	FILE* pf = fopen("file.txt", "w");
	assert(pf != NULL);
	char name[] = "zhangsan";
	char gender[] = "male";
	char age = 23;
	// 将这三个信息保存在文件中
	fprintf(pf, "%s %s %d", name, gender, age);
	fclose(pf);

文件效果:

fscanf函数例子:

	FILE* pf = fopen("file.txt", "r");
	assert(pf != NULL);
	char name[10];
	char gender[5];
	int age;
	// 把文件中的数据赋值给上面的三个变量中
	fscanf(pf, "%s %s %d", name, gender, &age);
	fclose(pf);

效果:

4. 二进制输入输出函数

size_t fwrite(const void* ptr, size_t size, size_t count, FILE* stream);

这个函数是以二进制写入文件数据,第一个参数是需要写入数据的指针,第二个是一个元素的大小,第三个是写入元素的个数,最后一个参数是文件指针

举个例子:创建一个结构体变量把信息存放到文件中

struct Stu
{
	char name[10];
	char gender[5];
	int age;
};
int main()
{
	struct Stu s = { "zhangsan", "male", 20 };
	FILE* pf = fopen("file.txt", "wb");
	assert(pf != NULL);
	fwrite(&s, sizeof(s), 1, pf);
	fclose(pf);
    return 0;
}

存放到文件中的效果

size_t fread(void* ptr, size_t size, size_t count, FILE* stream);

这个函数是以二进制读取文件数据,第一个参数是读取到的数据保存的位置的地址,第二个是一个元素的大小,第三个是读取元素的个数,最后一个参数是文件指针

struct Stu
{
	char name[10];
	char gender[5];
	int age;
};
int main()
{
	struct Stu s;
	FILE* pf = fopen("file.txt", "rb");
	assert(pf != NULL);
	fread(&s, sizeof(s), 1, pf);
	fclose(pf);

	return 0;
}

效果

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值