如何清除c语言输入流(急)
我碰到一个问题:
就是我上次输入的东西好像影响了下一次的输入,代码如下:
int Input(SeqStack *carstack,LQueue *carqueue,SeqStack *temporarystack)
{
DataType_stack carnumber,time;
char sign;
printf( "请输入是A或D或E\n ");
scanf( "%c ",&sign);
printf( "请输入车牌号或0\n ");
scanf( "%d ",&carnumber);
printf( "请输入到达时间或离开时间或0\n ");
scanf( "%d ",&time);
if(sign== 'A ')//有车想进入停车场
{
parkcar(carstack,carqueue,carnumber,time);
printf( "-------------------------------------\n\n ");
return 1;
}
else if(sign== 'D ')//有车想开走
{
//首先查找是否有该车
Find(carstack,temporarystack,carqueue,carnumber,time);
printf( "-------------------------------------\n\n ");
return 1;
}
else if(sign== 'E ')
{
printf( "-------------------------------------\n\n ");
return 0;
}
return 1;
}
int main()
{
LQueue carqueue;
SeqStack carstack,temporarystack;
StackInitiate(&carstack);//初始化堆栈
StackInitiate(&temporarystack);//初始化堆栈
QueueInitiate(&carqueue);//初始化队列
printf( "/*---------------------------------------*/\n ");
printf( " 本程序是用于解决停车场问题\n ");
printf( " 收费标准是每个小时%.1f元,在便道上不收费\n ",price);
printf( " 输入格式如下:\n ");
printf( " A:A表示到达\n ");
printf( " D:D表示离开\n ");
printf( " E:表示停止本程序的运行\n ");
printf( "/*---------------------------------------*/\n\n ");
while(1)
if(!Input(&carstack,&carqueue,&temporarystack))
break;
}
有几个调用函数没有各处代码,但是都写好了没有问题。
当我用这个Input时第一次可以是如下形式
请输入是A或D或E
A
请输入车牌号或0
1
请输入到达时间或离开时间或0
2
可是第二次就变成了
请输入是A或D或E
请输入车牌号或0
A
请输入到达时间或离开时间或0
请输入是A或D或E
请输入车牌号或0
2
请输入到达时间或离开时间或0
8
请问这是什么原因啊?
该怎么避免,使其和第一次一样?
[解决办法]
fflush(stdin)