专栏中心

EEPW首页 > 专栏 > C语言的中gets(s)和scanf("%s",s)的区别

C语言的中gets(s)和scanf("%s",s)的区别

发布人:电子禅石 时间:2019-06-01 来源:工程师 发布文章

二者都是从终端读入字符串。功能为
1、 gets功能为读入一行,并将换行符转换为字符串结束符。
2、 scanf("%s",s);读入时,遇到空白字符,包括空格,制表符,换行符时均会停止输入。

从功能上可以看出不同之处:
1 终止条件不同。gets只有遇到\n时才会结束输入,而scanf遇到空格或制表符时,也会结束输入。
比如输入"test string\n"。
用gets得到的字符串为"test string", 二用scanf得到的是"test"。

2 终止后,对终止字符处理不同。
比如输入为"test\nabcd"。
执行gets后,\n不会留在缓冲区中,即这时调用getchar得到的字符是'a'。
执行scanf后,\n会留在缓冲区,这时调用getchar得到的字符是'\n'。

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

利用单片机消除热电偶测量误差

高性能 DSP 上的串行 RapidIO 接口

视频 2010-03-18

利用汇编语言实现DES加密算法

巴斯夫涂料在德国明斯特的全新汽车原厂漆涂料生产装置正式投产

道德的形成

hpnet 2003-06-06

电源管理设计贴士

视频 2010-03-18

TechInsights 拆解:蔚来“亚当(Adam)”超级计算机

太空新蓝海:低轨(LEO)卫星的巨大商机

密码访问器件X76F100在单片机系统中的应用

马斯克为何坚持盖芯片厂 分析师给出3大原因

EDA/PCB 2025-11-12

高性能 32位嵌入式处理器TMS470 家族

视频 2010-03-18

低功耗射频和德州仪器的解决方案

视频 2010-03-18

高性能 C64+ DSP 上 TCP2/VCP2 协处理器的应用

视频 2010-03-18

秒信号发生器两例

TechInsights 拆解:看看华为的 MDC Pro 610 ADAS 控制器成本如何?

汽车电子 2025-11-12

ICCAD-Expo超全观展指南,看这一篇就够了!

EDA/PCB 2025-11-12

Arm携手中国伙伴,创建“AI定义汽车”时代的新范例

罗德与施瓦茨宣布推出新频段R&S ZNB3000矢量网络分析仪

迈入AI原生时代:IDC发布2026年中国智能终端市场十大洞察

Molex莫仕宣布率先推出内置电磁屏蔽层的Quad-Row板对板连接器

利用高集成度时钟系统芯片代替传统分离时钟设计

更多 培训课堂
更多 焦点
更多 视频

技术专区