C语言:文件操作(下)

本文详细介绍了C语言中scanf、printf、fscanf、fprintf、sscanf、sprintf等文件操作函数的区别与用法,以及fseek、ftell、rewind和文件结束判定的方法。同时讨论了ANSIC标准中的文件缓冲区机制及其对文件操作的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

片头

嗨!小伙伴们,在前2篇中,我们分别讲述了C语言:文件操作(上) C语言:文件操作(中),今天我们将会学习文件操作(下),准备好了吗?Ready Go ! ! !

在上一篇中,我们讲解了所有关于顺序读写的函数,接下来我们要探讨一个问题:

一、对比一组函数:

scanf/fscanf/sscanf

printf/fprintf/sprintf

它们的作用分别是什么?

需要回答这个问题,首先我们要把它们分成3组, 第1组:scanf 和 printf, 第2组:fscanf 和 fprintf, 第3组是:sscanf 和 sprintf。

①scanf函数:读取数据,按照一定的格式来读取数据,从键盘上获取数据,也就是从标准输入流上读取数据,针对标准输入(键盘)的格式化输入函数(因为我们可以指定格式,比如:读一个整型,读一个字符,或者读一个字符串,可以为%d,%c,%s ,这样的方式来指定格式)

②printf函数:针对标准输出(屏幕)的格式化的输出函数

③fscanf函数:针对所有输入流(标准输入流+文件输入流)的格式化输入函数。我们可以这样理解:fscanf函数包含scanf函数

④fprintf函数:针对所有输出流的格式化输出函数

⑤sscanf函数:从一个字符串里面读取一个格式化的数据

⑥sprintf函数:把格式化的数据转换成字符串

关于前4个函数,我们比较熟悉,接下来我们来讲解一下sscanf函数 和 sprintf函数

1. sprintf函数

sprintf函数是一个C语言的字符串格式化函数,用于将格式化的数据写入字符串中。它的原型定义在<stdio.h>头文件中,函数形式为:

int sprintf(char* str,const char* format,........);

其中,str是一个指向字符数组的指针,用于存储格式化后的字符串; 

format是一个格式控制字符串,用于指定输出的格式;

......: 是可选的参数列表,用于提供格式化的数据

sprintf函数的作用是将格式化的数据按照指定的格式写入到字符串str中。它的工作方式与printf函数类似,但不同的是printf函数是将格式化后的数据打印到标准输出流(屏幕),而sprintf函数是将格式化后的数据写入写入到字符数组中。

使用sprintf函数时,可以在格式控制字符串中使用占位符(如:%d、%s等)来表示要输出的数据类型和格式。然后,sprintf函数会根据占位符的类型和格式,将对应的参数值转换成字符串,并将其写入到str指向的字符数组中。

sprintf函数返回写入到字符串中的字符数(不包括字符串的结束标志‘\0’),如果发生错误,则返回负值。

代码如下:

#include<stdio.h>
//创造一个结构体S
struct S {
	char name[20];
	int age;
	float score;
};
int main() {
 //创建一个结构体变量s,分别对s的结构体成员进行初始化
	struct S s = { "zhangsan",18,85.0f };
	char a
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值