首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

怎么清除c语言输入流(急)

2012-03-14 
如何清除c语言输入流(急)我碰到一个问题:就是我上次输入的东西好像影响了下一次的输入,代码如下:intInput(

如何清除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)

热点排行