sscanf 和sprintf函数(从进门到进厂)

                                              

本期介绍

讲解 scanf()、printf()、fscanf()、fprintf()、sscanf()、sprintf()这三对函数的区别,

详细讲解sscanf()、sprintf()两个函数的应用场景

_____________________________________________________________________________

详解

 scanf()和printf()

         首先,我们应该熟悉的是scanf()和printf(),这两个是针对标准输入\输出流的函数。

标准输入是默认从键盘上读取数据,标准输出是默认输出到屏幕)。

函数类型如图所示:

———————————————————————————————————————————

fscanf()和fprintf()

        接着,就是文件操作这章所学的fscanf()和fprintf(),这是针对所有输入\输出流格式化的输入\输出的函数。

(所有输入流指的是键盘(stdin)和文件,网络等,所有输出流指的是屏幕(stdout)和文件,网络等)

提示:后期会更新“”的博客,进行详细讲解

函数类型如图所示:

    ———————————————————————————————————————————

sscanf()和sprintf()

         最后,讲解一下sscanf()sprintf().相较于前两对函数而言sscanf()和sprintf()并不与外部设备进行数据传输,而是实现数据字符串之间的转换,函数格式如下:

sprintf():将一个格式化数据,转化成字符串

对比上面提到的printf(),sprintf()只是比printf()前面多了一个参数char*str(转化成的字符串的指针)

其余参数与用法与printf()一样。下面举个例子:

#include<stdio.h>

typedef struct S
{
	char name[15];
	int age;
	float height;
}S;
int main()
{
	S s1 = { "lihua" ,18,175.5};
	char arr[50] = {0};
	sprintf(arr, "%s %d %f", s1.name, s1.age, s1.height);
	printf("%s\n", arr);
	return 0;
}

运行结果:

sscanf() : 将字符串转化成格式化的数据。

对比上面提到的sscanf(),sscanf()只是比scanf()前面多了一个参数char*str(要被转化的字符串的指针)

其余参数与用法与scanf()一样。下面举个例子:

#include<stdio.h>

typedef struct S
{
	char name[15];
	int age;
	float height;
}S;
int main()
{
	S s1 = { "lihua" ,18,175.5};
	S s2 = { 0 };
	char arr[50] = {0};
	sprintf(arr, "%s %d %f", s1.name, s1.age, s1.height);
	printf("%s\n", arr);
	sscanf(arr,"%s %d %f",s2.name,&(s2.age),&(s2.height));
	printf("%s %d %f\n", s2.name, s2.age, s2.height);
	return 0;
}

运行结果:

———————————————————————————————————————————
        我想肯定会有人问:这两个函数的设计的目的是什么呀?谁会平白无故让数据的转化成字符串,从字符串中读取数据,这不多此一举嘛。当然这么想无可厚非,因为你还没有深入的了解前端数据的存储形式,前端与后端之间数据的传输,当学习的代码越来越多,见识越来越广的时候,自然而然就明白了。下面来讲解一下这两个函数的应用场景。

        当我们想开发一个应用软件的时候,需要使用BS结构,也就是浏览器、服务器结构。当前端页面获取信息的时候,是以字符串的形式获取的,就譬如:“姓名”“年龄”“身高”。然后会进行组合,组合成一个字符串,譬如:“姓名年龄身高”。最终将这个字符串传递给后端,后端可能是以结构的形式存储的,所以就需要用到像sscanf()这样的函数,从字符串中读取数据。同样的如果我们想
将后端的数据呈现到前端页面上去,就需要通过像sprintf()这样的函数,将数组转换成字符串然后传递给前端。


  这种操作叫做:序列化反序列化

———————————————————————————————————————————

                          

这个博客如果对你有帮助,给博主一个免费的点赞就是最大的帮助

欢迎各位点赞,收藏和关注哦

如果有疑问或有不同见解,欢迎在评论区留言哦

  • 22
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一码归—码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值