400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

【C语言】getchar与scanf输入函数注意事项-创新互联

getchar/scanf   输入函数 getchar:scanf:getchar/scanf 注意事项:

在调用  getchar和scanf  时候,getchar/scanf 都会从缓冲区拿走数据

如果键盘输入一个值 按了空格或者回车

scanf和getchar 只会读到 输入\n前的值

大概就是:键盘中输入的数据存放在缓冲区,scanf和getchar 函数从缓冲区读取数据,读取成功后读取的数据在缓冲区中清空,缓冲区只留下了\n 

scanf/getchar(缓冲区)错误示范

错误:scanf在输入一个值时(假如是abcde)按了回车就是 abcde\n 但是scanf只能读取\n前的值

这时候缓冲区就剩下\n了。   接下来getchar在想输入一个值时看见缓冲区有个 \n 直接读取了,还

来不及键盘输入。ch就等于了\n直接走到了else这步。那该问题应该怎么处理?

另外在提一个scanf注意事项:scanf 只会读到输入空格前的值 空格后的值留在了缓冲区

比如:输入abcde 123 scanf真正读取的的只有abcde,缓冲区剩下123

如同以上问题一起清理缓冲区

很简单,就是在 scanf读取一个值后,while循环一个getchar把缓冲区剩下的东西读走!

如有错误,请大佬们纠正!

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


本文题目:【C语言】getchar与scanf输入函数注意事项-创新互联
本文链接:http://mzwzsj.com/article/coossj.html

其他资讯

让你的专属顾问为你服务