首页 > 编程笔记

cin.ignore():C++跳过(忽略)指定字符

ignore() 是 istream 类的成员函数,它的原型是:

istream & ignore(int n =1, int delim = EOF);

此函数的作用是跳过输入流中的 n 个字符,或跳过 delim 及其之前的所有字符,哪个条件先满足就按哪个执行。两个参数都有默认值,因此 cin.ignore() 就等效于 cin.ignore(1, EOF), 即跳过一个字符。

该函数常用于跳过输入中的无用部分,以便提取有用的部分。例如,输入的电话号码形式是Tel:63652823Tel:就是无用的内容。例如下面的程序:
#include <iostream>
using namespace std;
int main()
{
    int n;
    cin.ignore(5, 'A');
    cin >> n;
    cout << n;
    return 0;
}
程序的运行过程可能如下:

abcde34↙
34

cin.ignore() 跳过了输入中的前 5 个字符,其余内容被当作整数输入 n 中。

该程序的运行过程也可能如下:

abA34↙
34

cin.ignore() 跳过了输入中的 'A' 及其前面的字符,其余内容被当作整数输入 n 中。

推荐阅读