gets和puts
发布日期:2021-06-29 11:13:54 浏览次数:3 分类:技术文章

本文共 576 字,大约阅读时间需要 1 分钟。

C Primer Plus总结

在读取字符串时,scanf()和转换说明%s只能读取一个单词。可是在程序
中经常要读取一整行输入,而不仅仅是一个单词。许多年前,gets()函数就
用于处理这种情况。gets()函数简单易用,它读取整行输入,直至遇到换行
符,然后丢弃换行符,储存其余字符,并在这些字符的末尾添加一个空字符
使其成为一个 C 字符串。它经常和 puts()函数配对使用,该函数用于显示字
符串,并在末尾添加换行符。
缺点:
gets()函数只知道数组的开始处,并不知道数组中有多少个元
素。如果输入的字符串过长,会导致缓冲区溢出(buffer overflow),即多
余的字符超出了指定的目标空间。如果这些多余的字符只是占用了尚未使用
的内存,就不会立即出现问题;如果它们擦写掉程序中的其他数据,会导致
程序异常中止;

#include
#define SIZE 81int main() { char words[SIZE]; puts("Enter a string, please."); gets(words); printf("Your string twice:\n"); printf("%s\n", words); puts(words); puts("Done"); return 0;}

转载地址:https://blog.csdn.net/ZWHSOUL/article/details/79410149 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:fgets、gets_s和fputs
下一篇:复合字面量(compound literal)

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月18日 16时49分48秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

十八般武艺教你如何解决问题 2019-04-29
「权威发布」2019年大学生电子设计竞赛,仪器设备和主要元器件清单 2019-04-29
「重磅猜题之第二篇」2019年大学生电子设计竞赛 2019-04-29
知乎:硬件和软件哪个吃香? 2019-04-29
中国深圳,600架无人机的盛典! 2019-04-29
干货分享 JVM 之第 3 篇 —— Java 内存结构相关 2019-04-29
干货分享 JVM 之第 4 篇 —— 掌握 Jmeter 压力测试工具,熟悉 Jconsole.exe 工具 2019-04-29
干货分享 JVM 之第 5 篇 —— 类加载器 2019-04-29
干货分享 JVM 之第 6 篇 —— SpringBoot2.0 框架性能调优 2019-04-29
基于 Hystrix 高并发服务限流第 1 篇 —— 必须了解的相关概念 2019-04-29
基于 Hystrix 高并发服务限流第 2 篇 —— 服务隔离(线程池隔离、信号量隔离) 2019-04-29
基于 Hystrix 高并发服务限流第 3 篇 —— 服务熔断、服务降级 2019-04-29
基于 Hystrix 高并发服务限流第 4 篇 —— 基于 Feign 实现服务熔断降级处理 2019-04-29
基于 Hystrix 高并发服务限流第 5 篇 —— Hystrix 监控 2019-04-29
Eureka 如何快速的、优雅的停止某个微服务 2019-04-29
Eureka 实现安全认证 2019-04-29
基于 Hystrix 高并发服务限流第 6 篇 —— 服务限流,基于 RateLimiter 实现 2019-04-29
Nginx 反向代理、负载均衡配置、Location正则表达式 2019-04-29
SpringBoot + WebSocket 实现前后端的收发消息 2019-04-29
SpringBoot 整合 JWT 实现统一认证 2019-04-29