1、gets在scanf前调用,这种调用一般不会出现什么问题,可以正常输入。
2、scanf在gets前调用,这种情况就会出现问题,当输入完scanf中的变量时,运行到gets函数,则不让输入任何字符
出现此问题的原因是gets函数接收了scanf输入完后的回车符,解决的办法是在scanf和gets中间,用getchar函数接收掉回车符,这样就不会出现任何问题了。
参考资料:
http://blog.csdn.net/wayne_hust/article/details/8164530
2018.03.13 | C与C++ | 3417 浏览 | 2 赞 | 1 条评论
请注意,本文编写于 1904 天前,最后修改于 1560 天前,其中某些信息可能已经过时。
1、gets在scanf前调用,这种调用一般不会出现什么问题,可以正常输入。
2、scanf在gets前调用,这种情况就会出现问题,当输入完scanf中的变量时,运行到gets函数,则不让输入任何字符
出现此问题的原因是gets函数接收了scanf输入完后的回车符,解决的办法是在scanf和gets中间,用getchar函数接收掉回车符,这样就不会出现任何问题了。
参考资料:
http://blog.csdn.net/wayne_hust/article/details/8164530
本文链接:http://icl.moe/archives/337/
本作品由 idealclover 采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可,转载请注明出处。
2
只有一条评论 QAQ
scanf("%dn")让scanf自己把换行符读走