C ++中cin.ignore()的用途是什么?
cin.ignore()函数用于忽略或清除输入缓冲区中的一个或多个字符。
为了使想法ignore()
起作用,我们必须看到一个问题,并使用该ignore()
函数找到了解决方案。问题如下。
有时我们需要清除不需要的缓冲区,因此当接受下一个输入时,它将存储在所需的容器中,而不是先前变量的缓冲区中。例如,输入cin语句后,我们需要输入一个字符数组或字符串。因此我们需要清除输入缓冲区,否则它将占用先前变量的缓冲区。在第一个输入之后按“ Enter”键,由于前一个变量的缓冲区有空间容纳新数据,因此程序将跳过随后的容器输入。
示例
#include<iostream>#include<vector>
using namespace std;
main() {
int x;
char str[80];
cout << "Enter a number and a string:\n";
cin >> x;
cin.getline(str,80); //take a string
cout << "You have entered:\n";
cout << x << endl;
cout << str << endl;
}
输出结果
Enter a number and a string:8
You have entered:
8
对于整数和字符串,有两个cin语句,但是仅采用数字。当我们按回车键时,它将跳过该getLine()
方法而不进行任何输入。有时它可以接受输入,但可以在整数变量的缓冲区内,因此我们无法将字符串视为输出。
现在要解决此问题,我们将使用cin.ignore()函数。此功能用于忽略高达给定范围的输入。如果我们这样写语句-
cin.ignore(numeric_limits::max(), ‘\n’)
然后,它也忽略包括换行符的输入。
示例
#include<iostream>#include<ios> //used to get stream size
#include<limits> //used to get numeric limits
using namespace std;
main() {
int x;
char str[80];
cout << "Enter a number and a string:\n";
cin >> x;
cin.ignore(numeric_limits<streamsize>::max(), '\n'); //clear buffer before taking new
line
cin.getline(str,80); //take a string
cout << "You have entered:\n";
cout << x << endl;
cout << str << endl;
}
输出结果
Enter a number and a string:4
Hello World
You have entered:
4
Hello World
以上是 C ++中cin.ignore()的用途是什么? 的全部内容, 来源链接: utcz.com/z/354338.html