赞
踩
这篇文章主要介绍了C语言scanf()、getchar()、getch()、gets()几种输入方法的特点,其中的不少细节在C语言初学时期极为有用,可以避免遇到不少问题。
因为scanf()方法遇到非字符的时候会结束从控制台的获取,所以在输入’a’后,按下 ‘回车(enter)’ 的同时,将’a’这个值以字符的形式赋值给了类型为 ‘char’ 的 ‘a’ ,将’回车(enter)’ 保存在控制台输入的缓冲区,然后继续执行下一段输出代码,然后又要求用户输入。此时,因为上一次被使用过后的字符串被保存在缓冲区,现在scanf()方法从控制台的缓冲区获取上一次被使用过后的字符串,并只截取第一个字符:’回车(enter)’,就会出现如下情况(第二个scanf好像没有起作用):
但是如果使用getchar()先将缓存中的回车读取,就可以输入第二个字符了:
2. scanf默认的分割符是所有的空白字符,所以不能直接输入带空格的字符串。scanf函数在输 入整型数据时不能接受空格、制表符Tab、回车等,因为scanf在处理对字符数据的输入时,既不会忽略前导空白字符,默认也没有任何分隔字符。所有的字符,包括空白字符都会被当成输入字符。
但scanf对于字符串和对整数的输入,会忽略前导的空白字符,而且默认的分隔符是所有的空白字符。
这是我的在初学阶段为应对C语言二三级和蓝桥杯所做的简短的笔记和总结,如果有用希望各位可以关注支持。如果各位觉得模糊,可以再看一下我列出的前辈们的文章,是我在学习和总结过程中参考过的,会更详细。
如有不足请批评指正,谢谢。
参考:
(13条消息) C语言中scanf与分隔符(空格回车Tab)_bobopeng的博客-CSDN博客_scanf分割字符
(13条消息) C语言 getchar()原理及易错点解析_66Kevin的博客-CSDN博客_c语言getchar
(13条消息) 关于C语言中getchar()的详细使用_Dormant7的博客-CSDN博客_c语言getchar()的功能
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。