2 sinat 27590807 sinat_27590807 于 2015.07.02 17:14 提问

scanf 中怎么忽略自己已经输入字符

如scanf("%d(%d)",&a,&b);
但是在读入时,b的值是‘(’的ASCII码!!!
但是我看一些代码就是这样写的,为什么自己运行就出错?

3个回答

u012736907
u012736907   2015.07.02 17:17

scanf("%d%d",&a,&b);这样的吧??!!!

sinat_27590807
sinat_27590807 因为给出的数据中有<>
接近 3 年之前 回复
danielinbiti
danielinbiti   Ds   Rxr 2015.07.02 17:19
 输入的时候这样:2(3)    这样a就等于2,b等于3
danielinbiti
danielinbiti 回复sinat_27590807: 我是拿vs环境试的
接近 3 年之前 回复
sinat_27590807
sinat_27590807 回复danielinbiti: 用Dev c++就不行啊
接近 3 年之前 回复
danielinbiti
danielinbiti 回复sinat_27590807: 可以呀,你2<3>4。不过1234567890123456这个值太大,a估计接收不了
接近 3 年之前 回复
sinat_27590807
sinat_27590807 回复danielinbiti: 但是我用scanf("%d<%d>%d",&a,&b,&c) 为什么不可以?
接近 3 年之前 回复
danielinbiti
danielinbiti 回复sinat_27590807: a=1234567890123456<10>2?如果a是这个数字,那到<就截断了,b就等于<了
接近 3 年之前 回复
sinat_27590807
sinat_27590807 额,1234567890123456<10>2这个是输入的数据
接近 3 年之前 回复
danielinbiti
danielinbiti 回复sinat_27590807: 怎么会是<呢,没有输入这个字符怎么会出来呢
接近 3 年之前 回复
sinat_27590807
sinat_27590807 就是这样输的,但读入时就成了b=‘<'
接近 3 年之前 回复
bullzerone
bullzerone   2015.07.02 18:26

scanf("%d",&a);scanf()函数参数的前面“%d”是格式控制符,决定你从键盘读入数据的类型。不要出现一些其他的字符

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!