我是靠谱客的博主 落后水杯,最近开发中收集的这篇文章主要介绍c语言中scanf 与 fgets的区别 以及怎么同时用两个函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

首先看一个程序



如上图所示,第一个循环正常,第二次就出现问题,

问题在于fgets可以读入整行包括换行符‘n’,但是scanf只会读取输入的字符,针对后面的回车键则不读取,由于输入输入存在缓冲机制,所以回车键留在缓冲区中,下次读取被fgets获取。第一次打印设想能够打印在一行,由于fgets含有换行符所以2换行。由于第一次输入缓冲中含有n,所以第二次输出在同一行。怎么解决呢?

由于存在缓冲机制,所以我们只要刷新输入流就可以





特别注意在用fgets读入字符串的时候,字符串中含有换行符,读出的长度比本来的长度加一






最后

以上就是落后水杯为你收集整理的c语言中scanf 与 fgets的区别 以及怎么同时用两个函数的全部内容,希望文章能够帮你解决c语言中scanf 与 fgets的区别 以及怎么同时用两个函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部