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