浅谈scanf、fscanf、sscanf的使用和区别

7 篇文章 0 订阅
订阅专栏

下面浅谈了sscanf和fscanf的用法和自己的一些理解

在这里插入图片描述

函数的参数对比
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(三个函数的头文件都是stdio.h)
在这里插入图片描述

讲三个函数前 先得明白流大概是个什么东西

我们写的程序经常要和硬件交流 常见的有 光盘 键盘 屏幕 软盘等
硬件不同 读写方式自然不同 沟通的方式也不同
那我们岂不是要学很多种"语言"
在这里插入图片描述

为了解决这种情况便出现了流 有点像水流 也有点像介质
在这里插入图片描述

于是我们便不用学那么多"语言"了 ,只用注意流这一种"语言"就行了!在这里插入图片描述

(个人理解:可以理解成数据转为了流 各种硬件有自己理解流的方式,而我们使用时只要注意流 不用关心硬件怎么理解流)

流也分文件流、标准输入流、标准输出流等
流是个高度抽象的概念,使用的多了自然就有自己的理解

在这里插入图片描述

fscanf的使用

在这里插入图片描述

fscanf与scanf对比只多了一个FILE*的指针

fscanf(stdin,...)等同于scanf(...)

例:

stdin是标准输入流 也就是键盘 本质也是一个文件流
在这里插入图片描述

fscanf的作用:从文件中读入数据 赋值给变量

例:
在这里插入图片描述
右边是文件里的信息…
运行结果:
在这里插入图片描述

注:避免从文件中读入中文 会出现乱码的情况
中文的编码不是单纯的ASCII码 中文有自己的编码标准
如果想要成功读取 就要改一下编码规则
这里以txt为扩展名的文件为例
把文本文件的UTF-8改为ANSI即可成功读取(这是大佬解决的,牛哇牛哇在这里插入图片描述

在这里插入图片描述
前后两次的对比

在这里插入图片描述
在这里插入图片描述

上面的例子中给结构体成员赋值了 同理也可以给各种类型的变量赋值
官方一点:将文件中的数据格式化后输入
在这里插入图片描述

sscanf的使用

在这里插入图片描述
sscanf和scanf对比只多了一个buffer指针

官方点:从一个字符串中读入格式化的数据
简单点:从字符串中读入要的数据 (这也是为什么参数必须时字符指针的一个原因)

默认读入是从stdin中读入,在这读入来源改成了字符串而已.

举个栗子:

问:ccl is a good man 提取出里面的每个单词(有很多办法实现切割,这里用sscanf试试)
别问ccl是谁
在这里插入图片描述

在这里插入图片描述

换个角度看:把a作为读入的来源 把数据读入了tmp五个数组里(初始化了五个tmp字符数组)

再举个例子
在这里插入图片描述

这里把字符串里的字符转为了数字,或者说初始化了三个tmp
sscanf常用操作传送门

总结

sscanf和fscanf不过是比scanf多了一个参数罢了

fscanf多了一个文件流 (stdin和stdout本质也是文件流)
sscanf多了一个字符指针

可以把这个不同的参数看作"源"

从源里面拿数据,再转换为其他类型的数据(格式化成别的类型的数据)前提是数据类型合法

sscanf可以实现切割字符串等常见的字符串操作
fscanf可以让我们从文件中拿到想要的数据

言而总之,sscanf和fscanf让我们得到数据的方法多样化 毕竟原来你只能从键盘(stdin)输入数据
在这里插入图片描述


如果有启发的话,留个赞再走吧,这对我帮助很大!

不点?
在这里插入图片描述

scanf,fscanf,sscanf区别----整理
liulina603的专栏
09-27 2万+
scanf 从控制台输入 fscanf 从文件输入 sscanf 从指定字符串输入 大家都知道sscanf是一个很好用的函数,利用它可以从字符串中取出整数、浮点数和字符串等等。它的使用方法简单,特别对于整数和浮点数来说。但新手可能并不知道处理字符串时的一些高级用法,这里做个简要说明吧。 1. 常见用法。 char str[512] = {0}; sscanf("123456
C语言scanf/fscanf/sscanf printf/fprintf/sprintf 函数对比
mlisda的博客
01-16 1032
scanf/fscanf/sscanf printf/fprintf/sprintf
scanf[^\n]/fscanf 的%[]和%n使用方法
aaaa255116的博客
10-22 2327
标准输入输出函数%[]和%n说明符的使用方法    scanf fscanf,均从第一个非空格的可显示字符开始读起!         标准输入输出函数scanf具有相对较多的转换说明符,它常常作为入门级函数出现在各种教材中。但奇怪的是,[]和n这两种都为c89/c99所规定的标准说明符却鲜少在大多数教材中出现。虽然[]和n说明符的使用频率不及其它说明符,但两者在程序设计中的作用仍然不可小视,尤
C语言scanffscanf和sscanf区别
恒等于C的博客欢迎您
10-11 6181
使用c语言的过程中,我们经常会用到scanf和printf,那么对于对于下面几个类似的函数,有什么区别呢? 对比一组函数的区别:一.scanffscanf和sscanf1.scanf2.fscanf3.sscanf二.printf,fprintf和sprintf1.printf2.fprintf3.sprintf 一.scanffscanf和sscanf 1.scanf 首先scanf我们的很熟悉,他就是从键盘上输入数据,准确的来说就是: 从标准输入(键盘)读取格式化的数据。 int main.
scanffscanf
wo.a的博客
04-02 3002
遇到一个问题:如果有一串数据   如mac地址 aa:bb:cc:33:12:34 要把这个存到一个数组里这么做?                     或者说把这个输出为aabbcc331234 怎么做当时我想了很多关于字符串的函数,但是都太复杂  什么字符串截取之类的 乱七八糟叭后来就被问了: 你知道 scanffscanf 函数吗? -----------好叭 显然我就知道scanf...
C语言sscanffscanfscanf和sprintf、fprintf、printf函数的区别与相似分析
2301_80038635的博客
01-25 1523
实际上fscanf就多了一个FILE * 的参数,也就是打开的文件的地址参数,所有当我们进行使用的时候,我们可以先像scanf一样写出来,然后再在前面加上一个FILE * 的参数就好了。而对于参数我们可以再对比一下,前面的fscanf就是多了一个FILE *的指针,而现在这里就是改成了字符指针,也就是从字符指针中读一个数据,到后面的格式化数据里面去。而对于这个函数参数,我们参照printf转换发现,这里就是多了一个字符指针,也就是从后面的输出的格式化中读数据,到前面的字符指针里面去。
C语言scanf/fscanf/sscanf函数使用简介
weixin_44498318的博客
05-07 994
fread :以字节位计算长度,按照指定的长度和次数读取数据,遇到结尾或完成指定长度读取后停止. fscanf :格式化读取,按照指定的格式串进行读取数据,并将数据初始化为指定的格式.所以在文本方式下才能有效的判断数据内容. fgets :整行读取,遇到回车换行或结尾停止.在文本方式时使用. 其实文本和二进制的差别就在于读取的数据,文本方式会默认为是ASCII码,二进制方式则原样将数...
c语言 sscanfscanffscanf正则表达式用法
12-26
每种语言都对正则表达式有着不同程度的支持,在C语言中,有输入功能的这三个函数对正则表达式的支持并不强大...均可以接受变参,sscanfscanf类似,可以将标准输入(stdin)作为输入源。最关键的部分,就是format这个
fprintf、printf、sprintf、fscanfscanf、sscanf_格式化输入输出
03-30
fprintf、printf、sprintf、fscanfscanf、sscanf_格式化输入输出
scanffscanf、sscanf函数
ZachZheng的专栏
09-11 491
文章目录写在前面的话scanffscanf,sscanf 函数 写在前面的话 文档没有任何商业因素,本着共享的精神进行分享,如有素材侵权,请给我留言; 文档都是自己平时看书或工作中的笔记,观点错误的地方欢迎留言; scanffscanf,sscanf 函数 scanf:用于从标准输入设备格式化字符串输入,原型为:int scanf(const char *format, ...);...
scanf,sscanf,fscanf
zhangna的博客
10-12 845
1. c语言scanf scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。 scanf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。与printf函数相同,C语言也允许在使用scanf函数之前不必包含stdio.h文件。scanf函数的一般形式为:     scanf(“格式控制字符串”, 地址表列); 其中,格式控制字符串的作
fscanf,sscanf,fprintf,sprintf函数的使用区别
封茗世香
04-09 1044
所有函数的头文件都是<stdio.h> scanf函数 fscanf函数 sscanf函数
“深入了解C语言中的输入函数:scanffscanf和sscanf
最新发布
qq_67411584的博客
04-15 2365
我们深入了解了 scanf 函数在 C 编程语言中的作用和用法。我们知道,scanf 函数通过格式字符串来指定要读取的数据类型和格式,它可以读取整数、浮点数、字符串等多种数据类型。同时,我们也学习了如何使用 fscanf 和 sscanf 函数来从文件流和字符串中读取格式化输入。将有助于我们在编程过程中更有效地处理用户输入和文件读取操作。
C/C++scanf、sscanffscanf函数用法
qq_39987383的博客
05-19 1457
#include <stdio.h> #include <stdlib.h> int main(int atgc, int *argv[]) { int a; char buf[100] = {0}; FILE *file = NULL; printf("请输入一个数字:"); scanf("%d", &a); printf("a = %d\n", ...
C语言scanf/fscanf/sscanf以及printf/fprintf/sprintf的区别
fufufu_的博客
10-12 984
sscanf sprintf
C语言函数--fscanf()、scanf()、sscanf()基本用法
qq_40572277的博客
12-19 1606
fscanf()、scanf()、sscanf()都包含在&lt;stdio.h&gt;中 fscanf(): int fscanf(FILE *stream,const char *format,…); 从流stream读取格式化输入。 scanf(): int scanf(const char *format,…); 从标准输入stdin读取格式化输入。 sscanf(): int sscan...
函数 —— scanf() fscanf() sscanf() (分析sscanf正则表达式的用法)
杰儿__er 的博客
05-20 3514
int scanf(const char *format, ...); int fscanf(FILE *stream, const char *format, ...); int sscanf(const char *str, const char *format, ...); ************************************...
c语言scanf fscanf sscanf
l23456789mmmmm的博客
10-06 220
scanf用于从键盘(标准输入流)中读取数据,会返回成功读取到数据的个数stdin 为标准输入流,这里指从键盘输入的数据比较简单,这里不多介绍了。
C语言scanf(),sscanf(),fscanf()的用法和区别
superywf的博客
06-25 4040
scanf(),sscanf(),fscanf()区别: 第一个是从控制台(键盘)输入; 第二个是从字符串输入; 第三个是从文件输入; scanf scanf()函数根据由format(格式)指定的格式从stdin(标准输入)读取,并保存数据到其它参数.   int main() {    int a,b,c;    printf("输入:a,b,c\n");    scanf
sscanfscanffscanf
09-27
scanffscanf和sscanf都是C语言中用于输入格式化数据的函数。 scanf函数用于从标准输入流...使用scanffscanf和sscanf函数可以使我们的数据输入更加灵活。不再局限于从键盘输入,可以从文件或字符串中读取数据。
写文章

热门文章

  • Linux中gcc、g++、gdb以及make/Makefile的使用 10132
  • C++继承笔记 9026
  • VS运行变得异常卡顿的记录及其解决 8554
  • 浅谈printf、fprintf、sprintf的使用和区别 6538
  • Linux开发工具的使用 6426

分类专栏

  • 面试复习
  • 考研408 7篇
  • 计算机组成原理 7篇
  • 项目
  • 高并发内存池 1篇
  • linux 15篇
  • 网络 2篇
  • 剑指offer 7篇
  • 模板 1篇
  • C++学习笔记 21篇
  • 设计模式 1篇
  • STL数据结构的简单实现
  • STL容器的简单用法 7篇
  • C语言指针 3篇
  • C语言 7篇
  • Python 2篇
  • 图论 1篇
  • 随笔 4篇
  • 课设 1篇
  • Markdown语法 2篇

最新评论

  • 浅谈scanf、fscanf、sscanf的使用和区别

    李连旺874: 返回值没有介绍

  • 指针的水很深,叔带你把握---C语言指针合集(1)

    mj_爱吃肉: 太用心了,加油加油

  • VS运行变得异常卡顿的记录及其解决

    喜欢乙醇的四氯化碳: everything直接网上搜下载就行,下载好找到对应的文件删掉应该就可以了

  • VS运行变得异常卡顿的记录及其解决

    FILMUSIC: 老师我也需要表情包请问可以分享给我吗表情包

  • 浅谈printf、fprintf、sprintf的使用和区别

    喜欢乙醇的四氯化碳: 已纠正

最新文章

  • py爬虫入门笔记(requests.get的使用)
  • 线段树随笔
  • 关于KMP算法的一些碎碎念(非教程向)
2024年2篇
2023年8篇
2022年58篇
2021年18篇

目录

目录

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

喜欢乙醇的四氯化碳

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

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

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

打赏作者

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

抵扣说明:

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

余额充值

玻璃钢生产厂家商场家电美陈布置青海玻璃钢酒店人物雕塑仿真玻璃钢雕塑报价表玻璃钢公仔雕塑评语商场建筑外观美陈玻璃钢雕塑起源设计山东户外玻璃钢雕塑制作遵义商场美陈搭建西安城市玻璃钢雕塑造型商场墙壁美陈重庆玻璃钢天使雕塑玻璃钢日漫形象雕塑汕头玻璃钢人物浮雕雕塑壁画园林玻璃钢卡通雕塑销售价格绍兴玻璃钢花盆销售厂家玻璃钢果蔬雕塑范围荆门玻璃钢雕塑造型平桥玻璃钢雕塑价格榆社县商场美陈云浮现代玻璃钢人物雕塑铜像雕塑制作程序玻璃钢常州商场亮化美陈儋州商场美陈玻璃钢雕塑设计感上衣水型玻璃钢花盆透气吗句容设计玻璃钢雕塑方案沈阳园林玻璃钢雕塑制作玻璃钢鹿雕塑工厂店松江区通用玻璃钢雕塑玻璃钢雕塑瑰丽多彩香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化