概述
首先看一个程序
如上图所示,第一个循环正常,第二次就出现问题,
问题在于fgets可以读入整行包括换行符‘n’,但是scanf只会读取输入的字符,针对后面的回车键则不读取,由于输入输入存在缓冲机制,所以回车键留在缓冲区中,下次读取被fgets获取。第一次打印设想能够打印在一行,由于fgets含有换行符所以2换行。由于第一次输入缓冲中含有n,所以第二次输出在同一行。怎么解决呢?
由于存在缓冲机制,所以我们只要刷新输入流就可以
特别注意在用fgets读入字符串的时候,字符串中含有换行符,读出的长度比本来的长度加一
最后
以上就是落后水杯为你收集整理的c语言中scanf 与 fgets的区别 以及怎么同时用两个函数的全部内容,希望文章能够帮你解决c语言中scanf 与 fgets的区别 以及怎么同时用两个函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复