C/C++中辨识scanf()与gets()、printf()与puts();且引申出的缓冲区问题

本文介绍了C/C++编程中,scanf()与gets()、printf()与puts()的区别,特别是对于空格和回车的处理方式,以及由此引发的缓冲区问题。通过实例,作者揭示了scanf()如何处理输入,以及如何使用gets()读取缓冲区中的数据。同时,文章提到了scanf()中遇到空格和回车的情况,并指出getchar()和fflush(stdin)在处理缓冲区数据时的作用。最后,简要比较了printf()和puts()的输出差异。

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

今天是22/1/25,寒假返乡后约莫已过俩周,放假前踌躇满志但直到今天夜里购置的书本才完全到达,以后的约30天中,我一定尽力做到每天学习五小时以上,合理的记单词及阅读《c与指针》,《c++primer plus》,后续也会根据自己的学习体会来编写博客,仅供自我督促,同时与诸君共勉,欢迎勘误,不尽感激。

由于我的学校本科阶段对c/c++要求较低,导致我连着考试等等几乎只会使用scanf()及printf()来进行输入输出,对gets/puts不求甚解,csdn上已有太多此番解析,合理借鉴,结合我心中迷惑写下本文。

    char List[10];
	scanf("%s",List);
	printf("The scanf()=%s\n",List);
	gets(List);
	printf("The gets()=%s",List);

 

由本例可以清楚的看出,scanf()中格式字符为%s时,其无法接受空格与回车,将直接终止scanf()从标准输入中获取字符串,紧接着后续的 空格to空格meet空格you都传给了gets()

在这里我们着重讨论一下缓冲区,这是我在初学阶段并不

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值