scanf("%d%d",&a,&b)与scanf("%d%d\n",&a,&b)的区别

发布网友 发布时间:2024-10-03 21:06

我来回答

2个回答

热心网友 时间:2024-10-04 04:25

scanf中,除了 %指定的数据,其他字符需要原样输入
scanf("%d%d\n",&n,&m), 意思就是先输入两个整数,再输入一个'\n',

但是在正常输入的时候, 回车被当作输入结束的标记,并没有被scanf收到,
于是scanf认为输入数据不全,继续等待.
当再次输入其他字符, scanf检测到输入的字符和'\n'不匹配,于是返回.
其实你不需要再输入两个数字,只要再输入任何一个不是空格的字符就可以了. 比如在第二个数字后面带个逗号.

但是这样的话,会影响下一次的输入, 因为那个逗号好没读走.

正确的方法是不要加最后那个'\n'

热心网友 时间:2024-10-04 04:25

原因在于在scanf中使用\n并不表示要求输入一个回车符,而是指忽略一切空白符,直至下一个非空白符输入

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com