回 帖 发 新 帖 刷新版面

主题:[讨论]一个新手的新手问题求解~~~~~

while(scanf("%d %d",&a,&b)!=EOF)中"%d %d"换成"%d,%d"无法得出结果,求大大们解释,小弟新手,啥都不懂,你们要笑就笑吧~~~~~~[em8]

回复列表 (共1个回复)

沙发

在scanf中:
1、如果你的引号""里面有一个空格,那程序就会尝试读取空格(回车、tab键之类的,也算空格)。只要一直有空格,那就一直读取,直到没有空格为止。
2、如果你的引号""里面有一个逗号,那程序就会尝试读取一个逗号。如果没有逗号,那就停止,不再读取。

看看微软对这个函数的解释:
[url=http://msdn.microsoft.com/zh-cn/library/kwwtf9ch.aspx]http://msdn.microsoft.com/zh-cn/library/kwwtf9ch.aspx[/url]
只要看前面部分,大致意思是:
1、如果有空格,那就尝试读取零个或者多个空格
2、如果有其它字符,那就尝试原样读取。如果没有读取到,那就停止。
3、如果有%开头的一串内容,则分析这串类容,并且按照规则进行读取。

总的来说,
1、scanf("%d %d", &a, &b),这个,先读取一个整数并且设置到变量a,然后忽略掉接下来的空格,最后读取一个整数并且设置到变量b。
2、scanf("%d,%d", &a, &b),这个,先读取一个整数并且设置到变量a,然后看看接下来是否有逗号,如果没有,则结束(此时变量b还没有读取!!),最后读取一个整数并且设置到变量b。

现在,看看你输入的是什么内容,然后就能明白了吧。

我来回复

您尚未登录,请登录后再回复。点此登录或注册