社区
C语言
帖子详情
请问scanf 缓冲区问题
outpainfo
2010-08-29 04:45:49
#include<stdio.h>
#include<stdlib.h>
int main()
{
char buff[10];
int j;
printf("enter a num:");
while(scanf("%d",&j)==0)
{
gets(buff); /*这个和buf具体什么作用,怎么工作的?*/
printf("enter a num:");
}
printf("%d\n",j);
return 0;
}
...全文
155
4
打赏
收藏
请问scanf 缓冲区问题
#include #include int main() { char buff[10]; int j; printf("enter a num:"); while(scanf("%d",&j)==0) { gets(buff); /*这个和buf具体什么作用,怎么工作的?*/ printf("enter a num:"); } printf("%d\n",j); return 0; }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hongshenlin
2010-08-29
打赏
举报
回复
如果对你有帮助的话,记得结贴!
hongshenlin
2010-08-29
打赏
举报
回复
while(scanf("%d",&j)==0)
{
gets(buff); /*这个和buf具体什么作用,怎么工作的?*/
printf("enter a num:");
}
scanf("%d",&j)语句是从缓冲区接收一个十进制整数。输入正确数据存放到变量表示的存储区中。同时scanf()函数返回一非零值。如果数据不正确,输入的数据仍然在缓冲区中。scanf()函数返回零值。
在你的程序中循环体执行的条件即是scanf()如果接受的是错误的数据则执行循环体,不是十进制数,那么肯定是字符。故用gets将字符串给接受了(缓冲区就没有内容了)并将接收的内容存放在数组buff中。这是程序本意。
但是实际上你的程序不能检查数据的正确性,具体为什么多验证几次不同的输入你就知道了。
十八道胡同
2010-08-29
打赏
举报
回复
对于gets函数 楼主可以参考http://topic.csdn.net/u/20100828/00/8523fb02-9ea2-49d8-abc5-0142faceb27b.html
wing_0706
2010-08-29
打赏
举报
回复
因为你scanf 要 回车结束。。
gets(buff); 可以接受回车。。 以及内存里 过多的东西。。
说不定你 你sanf输入时 多 输入的 东西 但是 没被接收。。
scanf
的
缓冲区
问题
本文详细解析了在使用C语言的
scanf
函数时遇到的
缓冲区
问题
,特别是当输入整数后,字符输入会受到回车符的影响。通过举例说明,解释了全缓冲、行缓冲和无缓冲的概念,并提供了三种解决方法:使用fflush(stdin)清除输入缓存、使用getchar()吃掉回车符或使用rewind(stdin)重置输入指针。最后,总结了处理
scanf
缓冲区
问题
的策略。
scanf
函数读取
缓冲区
数据的
问题
本文详细探讨了C语言中
scanf
函数在处理
缓冲区
数据时出现的
问题
,包括为什么会出现多余输出和如何解决。介绍了全缓冲、行缓冲、无缓冲的概念,并解析了
scanf
函数的工作原理,如格式化字符串的规则以及如何处理空白字符。同时,讨论了getchar函数的使用以及等待用户输入字符的方法。
scanf
函数及
缓冲区
问题
详解
本文详细介绍了
缓冲区
的概念、作用、类型以及在输入输出中的应用。
缓冲区
主要用于提高数据读写的效率,通过全缓冲、行缓冲和不带缓冲三种方式管理数据。在C语言中,
scanf
()函数在处理输入时,会遇到一些
问题
,如遇到不符合格式的数据会读取失败且保留错误数据在
缓冲区
,需要正确理解和使用以避免程序出错。同时,文章还列举了多个示例来说明
scanf
()的使用技巧和注意事项。
scanf
输入 存入输入
缓冲区
问题
博客主要介绍了
scanf
函数输入
缓冲区
问题
。连续使用
scanf
读取常规数据类型,如整数、浮点数等,不会出现
缓冲区
问题
,因其会自动跳过空白字符;但使用%c读取字符时可能出现
问题
,因%c不会跳过空白字符。可在使用%c前用getchar()清理换行符来避免。
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章