这个问题个人觉得主要是涉及了两个问题:
第一个是scanf的格式问题:
scanf("%d:%d",&a,&b),我想大家应该比较熟悉了,输入时的格式应该是
1:2
这样的才是有效的。所以这说明了楼主所疑问的“/n”的作用就应该比较清楚了
是多个输入的分隔,用来区分多个“输入”。
因为是加在最后面的,所以有跟没有的效果是一样的,而且c语言默认的就是回车
分隔多个输入。
第二个是输入缓冲区的问题:
楼主大概是这样想的“有两个scanf,所以我输入了两排(1,2,3和4,5,6),
那么这两排应该对应着两个scanf函数”,其实不对,你可以这样输入(1 回车2回车3回车。。。)
这也是由scanf由回车来区分多个输入所决定的。所以“两排”跟“两个scanf”没有
对应关系。不过是怎么输入的,输入了多少个,都是输入到缓冲区当中去。然后
再顺序的给abxyz赋值,故效果为12345
如果想取得楼主所想的效果应该是
scanf("%d%d",&a,&b);
fflush(stdin);//刷新缓冲区
scanf(":%d%d%d",&x,&y,&z);
Ps:
这样应该可以的,但是我在gcc下(window下还没有试)(已验证),却没有实现,不明白是为什么
搭车求达人回答
[
本帖最后由 七有新人 于 2010-11-1 21:08 编辑 ]