【发布时间】:2013-12-07 15:16:46
【问题描述】:
我必须接受以下格式的输入
S1 S2 S3
其中 S1 是字符,S2,S3 是整数 例如
3
A 123 452
D 450 53
B 330 672
(其中“3”代表查询次数) 现在我为它编写了以下代码:
while(i<=Q){
scanf("%c %d %d",&ch,&index,&num);
printf("%c %d %d\n",ch,index,num);
i++;
}
但是,对于上面显示的三个值,我得到以下输出
0 755130840
A 123 452
123 452
顶部有一条额外的线,并且那个大值(这里是 755130840)每次都在变化。
我哪里错了??我什至尝试单独扫描 3 个值并在每个扫描语句之前刷新输入流。但是,它也无济于事。
鉴于这两个空行,我相信换行符 ('\n') 被存储在某个变量中。我该如何处理它?
【问题讨论】:
-
提示:使用返回值。 (是的:scanf() 有返回值!)
-
在
scanf%c前加一个空格 -
这怎么行??是的,我的意思是它必须......但你能详细说明一下吗?(可能作为我可以投票的答案......:))
-
@alphacentauri 选择正确答案。