首页 > 编程笔记 > C++笔记 阅读:253

C++ cin.ignore:跳过键盘缓冲区N个字符

cin.ignore 函数告诉 cin 对象跳过键盘缓冲区中的一个或多个字符。以下是它的一般形式:

cin.ignore(n, c);

括号中显示的参数是可选的。如果使用,则 n 是一个整数,c 是一个字符。它们告诉 cin 跳过 n 个字符,或直到遇到字符 c。

例如,以下语句会导致 cin 跳过接下来的 20 个字符,或者直到遇到换行符,以先到者为准:

cin.ignore(20,'\n')

如果没有使用参数,则只会跳过下一个字符。以下是其示例:

cin.ignore();

在学习 cin.get 时,对于cin>>和 cin.get 语句混合使用时发生的问题,可以通过在 cin >> 语句之后插入一个 cin.ignore 语句来避免,如下所示(这会导致 cin>> 遗留下来的换行符被绕过,强制 cin.get 等待用户输入另一个字符):
cout << "Enter a number: ";
cin >> number;
cin.ignore ();    //跳过换行符
cout << "Enter a character: ";
cin.get(ch);
cout << "Thank You!" << endl;