| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 466 人关注过本帖
标题:一个关于c语言scanf的函数的问题
只看楼主 加入收藏
nicezhangfan
Rank: 2
等 级:论坛游民
帖 子:23
专家分:10
注 册:2012-9-27
结帖率:40%
收藏
 问题点数:0 回复次数:3 
一个关于c语言scanf的函数的问题
帮忙看看这段代码的问题
程序代码:
#include<stdio.h>
void main()
{
int a,b,c,m;
scanf("%d,%d,%d", &a, &b,&c);
    m=scanf("%d,%d,%d", &a, &b,&c);
printf("%d\n",m);
printf("%d %d %d",a,b,c);
}


这段代码的意义好像是判断输入时候正确!但是我输入1,2,3,4的时候结果显示很看不懂,明明说没有一个正确录入!但是结果却显示正确了!!
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: c语言 
2012-10-08 22:11
爱闹的娃
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:265
专家分:975
注 册:2011-10-23
收藏
得分:0 
在第一次输入的时候,输入的个数太多....会发生错误,它读取的只是跟转义字符相匹配的数,
多余的数则会停留在缓冲区...直至清楚缓冲区...所以m那里没有成功的读入一个数.........
2012-10-08 22:52
爱闹的娃
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:265
专家分:975
注 册:2011-10-23
收藏
得分:0 
回复 楼主 nicezhangfan
就这问题,再次补充一点点,要求输入的全部是%d,但是每次输入的时候都加了一个逗号(,)
....当前面三个都正确输入的时候,你再次加了一个逗号(,4)..这时scanf就不会跳过它(因为scanf在此时找不到和逗号相匹配的变量)
...如果你将输入里面的逗号都不要的话(scanf("%d%d%d")),就可以了...........
2012-10-09 16:55
nicezhangfan
Rank: 2
等 级:论坛游民
帖 子:23
专家分:10
注 册:2012-9-27
收藏
得分:0 
回复 3楼 爱闹的娃
谢谢!!虽然还是不怎么明白,但是非常感谢!缓冲区什么的搞不懂样!!
2012-10-17 17:22
快速回复:一个关于c语言scanf的函数的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021020 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved