如何把cin的buffer清掉呢?
Cixy 2004-08-20 10:57:58
程序如下:
#include <iostream.h>
int main(int argc, char *argv[]){
char s[10];
cout<<"1st 无效:";
cin>>s;
cout<<"---"<<s<<"---"<<endl<<"2nd 无效:";
cin.getline(s, 10);
cout<<"---"<<s<<"---"<<"how can i 无效 something for 2nd 无效?!!";
return 0;
}
程序运行时不给第二次输入机会,推断是cin的buffer内仍然有个'\r',可是如何把cin的buffer清掉呢?
找不到方法的我是这样做的
……
char tmpc = cin.get();
cin.getline(s2, 10);
if (tmpc=='\r')
s[0] = '\0';
else
{
s[0] = tmpc;
s[1] = '\0';
}
strcat(s, s2);
……
求比较比较“顺溜”点的方法,例如在getline之前放个clearbuffer的方法,可问题这个方法怎么写呢?!