• cin.ignore()函数的用法


         

          功能:函数用于输入流。它读入字符,直到已经读了num 个字符(默认为1)或是直到字符delim 被读入(默认为EOF).其调用形式为cin.ignore(n,终止字符)
          原型:istream &ignore( streamsize num=1, int delim=EOF );
          函数作用是跳过输入流中n个字符,或在遇到指定的终止字符时提前结束(此时跳过包括终止字符在内的若干字符)。
    程序举例:
    #include <iostream>
    using namespace std;
    int main()
    {
    char array[8];
    cin.ignore(6,'a');
    cin.getline(array, 8);
    cout << array << endl;
    return 0;
    }

    输入:bcdefgk 输出:k

    输入:bcagkld 输出:gkld

    它还可以这样用:cin.ignore();即不带参数;此时默认参数为1.

         cin.ignore(a,ch)方法是从输入流(cin)中提取字符,提取的字符被忽略(ignore),不被使用。每抛弃一个字符,它都要计数和比较字符:如果计数值达到a或者被抛弃的字符是ch,则cin.ignore()函数执行终止;否则,它继续等待。它的一个常用功能就是用来清除以回车结束的输入缓冲区的内容,消除上一次输入对下一次输入的影响。比如可以这么用:cin.ignore(1024,' '),通常把第一个参数设置得足够大,这样实际上总是只有第二个参数' '起作用,所以这一句就是把回车(包括回车)之前的所以字符从输入缓冲(流)中清除出去。


    eg.

    #include <iostream>
    using namespace std;
    void main()
    {
        int a, b, c;
        cout << "input a:";
        cin >> a;
        cin.ignore(1024, '
    ');
        cout << "input b:";
        cin >> b;
        cin.ignore(1024, '
    ');
        cout << "input c:";
        cin >> c;
        cout << a << "	" << b << "	" << c << endl;
    }

          如果没有cin.ignore(),可以一次输入3个数,用空格隔开就好了。。可是非常不美观。。这样才是我们想要的。

          如果cin.ignore()不给参数,则默认参数为cin.ignore(1,EOF),即把EOF前的1个字符清掉,没有遇到EOF就清掉一个字符然后结束,会导致不正确的结果,因为EOF是文件结束标识呵。

    #include<iostream>  
    using   namespace   std;
    
    void main()
    {
        char   str1[30], str2[30], str3[30];
        cout << "请输入你的姓名:";
        cin >> str1;
        cout << "请输入你的住址:";
        cin.ignore();
        cin.getline(str2, 30, 'a');
        cout << "请输入你的籍贯:";
        cin.ignore();
        cin.getline(str3, 30);
        cout << str3;
    }

         如果在地址那里输入bcdabcd那么此时流里面剩的是bcd ,此时cin.ignore();吃掉的就是b了,这是流里还剩下cd 直接交给cin.getline(str3,30);应为有个 所以这里getline就直接返回 .

  • 相关阅读:
    SQL SERVER 和EXCEL的数据导入导出
    常用SQL语句
    ASP.NET 中 ContentType 类型
    Centos7 安装MongoDB
    Scrapy:pipeline管道的open_spider、close_spider
    pipreqs(找当前项目依赖的包)
    Docker版本Jenkins的使用
    CentOS安装nginx,部署vue项目
    centos7中安装mysql
    flask框架使用flaskmigrate进行数据库的管理,非常方便!!!
  • 原文地址:https://www.cnblogs.com/ranjiewen/p/5582601.html
Copyright © 2020-2023  润新知