2018.03.13 | C与C++ | 4187 浏览 | 2 赞 | 1 条评论


请注意,本文编写于 2230 天前,最后修改于 1885 天前,其中某些信息可能已经过时。
AI摘要:本文讨论了scanf与gets函数混用的问题。当gets在scanf前调用时,输入正常;而当scanf在gets前调用时,输入会受到影响。原因在于gets接收了scanf输入后的回车符。解决方法是在两者之间使用getchar函数接收回车符。参考资料:http://blog.csdn.net/wayne_hust/article/details/8164530

Powered by AISummary and MoonShot Kimi Chat.

1、gets在scanf前调用,这种调用一般不会出现什么问题,可以正常输入。

2、scanf在gets前调用,这种情况就会出现问题,当输入完scanf中的变量时,运行到gets函数,则不让输入任何字符

出现此问题的原因是gets函数接收了scanf输入完后的回车符,解决的办法是在scanf和gets中间,用getchar函数接收掉回车符,这样就不会出现任何问题了。

参考资料:
http://blog.csdn.net/wayne_hust/article/details/8164530

本文链接:https://idealclover.top/archives/337/

本作品由 idealclover 采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可,转载请注明出处。

标签: 输入

2

只有一条评论 QAQ


  1. Michael
    Michael 回复

    scanf("%dn")让scanf自己把换行符读走

🤔关于我
翠翠 idealclover
Product Manager @ByteDance
南京大学 2016 级本科生
了解更多
🏠关于博客
基于 Typecho 博客框架
使用个人的 clover clover 主题