- 论坛徽章:
- 0
|
源代码如下:
#include < stdio.h >
#include < stdlib.h >
int main()
{
int order = 1;
char tag;
int num = 0;
int time = 0;
InitPark( &p );
InitQueue( &q );
while ( order != 0 )
{
printf( "请输入汽车的状态:A --- 达到,D --- 离开 \n" );
scanf( "%c", &tag ); 问题所在: 这里的scanf会被屏蔽一次
while ( tag != 'A' && tag != 'D')
{
printf( "错误输入!请重新输入。\n请输入汽车的状态:A --- 达到,D --- 离开 \n" );
scanf( "%c", &tag ); 问题所在: 这里的scanf会被屏蔽一次
}
printf( "请输入汽车的车牌:\n" );
scanf( "%d", &num );
printf( "请输入时间(分钟):\n" );
scanf( "%d", &time );
// prompt of order
printf( "请输入命令:0 --- 结束, 1 --- 继续\n" );
scanf( "%d", &order );
while ( order != 0 && order != 1 )
{
printf( "无效命令!请重新输入:\n0 --- 结束, 1 --- 继续\n" );
scanf( "%d", &order );
}
}
system( "pause" );
return 0;
}
例如
1.运行结果是:
请输入汽车状态:A --- 达到,D --- 离开
A
请输入汽车的车牌:
3322
请输入时间:
23
请输入命令:
1
请输入汽车状态:A --- 达到,D --- 离开 开始出现问题:不知道为什么跳过了一个scanf语句
错误输入!请重新输入。
请输入汽车的状态:A --- 达到,D --- 离开
2.另外一个运行结果:
请输入汽车状态:A --- 达到,D --- 离开
a
错误输入!请重新输入。
请输入汽车的状态:A --- 达到,D --- 离开 开始出现问题:不知道为什么跳过了一个scanf语句
错误输入!请重新输入。
请输入汽车的状态:A --- 达到,D --- 离开
我按F10进去看,发现跳过了一个scanf语句,可是为什么跳过,就一直想不通。
希望各位高手指点一下。
(最好说清楚一点,因为我理解能力不是很好。谢谢!!!) |
|