#关于scnaf一些特殊情况

scanf在读取时,遇到空格,tab,换行符会停止读取(输入的东西都放在缓冲区,再读取),此时scanf只会读取前面的数据,,所以,缓冲区就剩下空格后面的内容.(如果缓冲区里有内容,用scanf或者getchar就直接读取时,不用你在键盘上重新输入)

我们可以改变scanf的一些参数来让scanf获取全部内容: scanf("%[^\n]",arr);

在获取完全部内容后,缓冲区里就剩下一个回车符,所以需要用getchar()来清除缓冲区.

用法如下:

scanf("%d",arr);

getchar();//此时不用输入,因为缓冲区里有一个字符(回车)

一般scanf和getchar是搭配使用的.

全部评论

相关推荐

程序员小白条:学历和简历问题,你想走开发,现在很难的啦,尤其后端方向很难走,前端、测开,都会好很多,另外要等8月底和9月初去投日常
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务