C++中cin.clear();cin.ignore();

来源:百度知道 编辑:UC知道 时间:2024/05/17 02:44:48
cin.clear();前面状态为假了,再输入就不被执行了,通过这个可以把假状态清除掉;用什么程序能实现呢?
还有,cin.ignore();

但实在写不出个程序,能表达出它们的用法;
请帮我写个程序,能看出来它们的作用呢?
在线等,谢谢!!

#include <iostream.h>

void main()
{

int c;
while(1)
{
cin >> c;
//cin.clear();//清除掉后,下一循环
cin.ignore();
if (!cin)

break;
cout << c ;

}
cout << "Bye" << endl;
}

#include <iostream >
#include <cstdlib >

using namespace std;

int main()
{
char str[8];
cin.getline(str, 5);
cout < <str < <endl;

//cin.clear(); 如果这里没有 clear,那么下面的输入就被忽略了,因为cin标志未清除
cin.getline(str, 5);
cout < <str < <endl;

system( "pause ");
return 0;
}

如果你在调用了cin对象运算符'>>'之后需要立即调用getline()函数,那么新行字符必须从输入缓冲区中提取出来。这是通用调用ignore()函数实现的。

'>>&