• 标准输入流


    标准输入流

    • cin.get 缓冲区中读取一个字符
    • cin.get(两个参数) 不读换行符
    • cin.getline () 读取换行 并且扔掉
    • cin.ignore 忽略 (N) N代表忽略字符数
    • cin.peek 偷窥   偷看1个字符然后放回去
    • cin.putback  放回 把字符放回缓冲区

    cin.get 缓冲区中读取一个字符

    #define _CRT_SECURE_NO_WARNINGS
    #include <iostream>
    using namespace std;
    /* 标准输入流
    cin.get() //一次只能读取一个字符
    cin.get(一个参数) //读一个字符
    cin.get(两个参数) //可以读字符串
    cin.getline()
    cin.ignore()
    cin.peek()
    cin.putback()
    */
    
    void test01()
    {
        char c = cin.get();     //一次只接收一个字符 如果输入的是as 第一次拿 a 第二次 s 第三次 换行 第四次 等待
        cout << "c= " << c << endl; //a
    
        c = cin.get();     //
        cout << "c= " << c << endl;     //s
        c = cin.get();     //
        cout << "c= " << c << endl;     //换行符
        c = cin.get();     //
        cout << "c= " << c << endl;     //等待下一次输入
    }
    
    int main()
    {
        test01();
        system("Pause");
        return 0;
    }

    结果:

    cin.get(两个参数) 不读换行符

    void test02()
    {
        //cin.get(两个字符); //可以读字符串, 但不会读取换行符
        char buf[1024]; //字符数组大小
        cin.get(buf, 1024);     //不取走换行
    
        cout << buf << endl;
    
        char c = cin.get();
        if (c == '
    ')
        {
            cout << "换行还在缓冲区" << endl;
        }
        else {
            cout << "换行不在缓冲区" << endl;
        }
    }

    结果:

    cin.getline () 读取换行 并且扔掉

    void test03()
    {
        //cin.getline()  //把换行符读取 并且扔掉
        char buf[1024]; //字符数组大小
        cin.getline(buf, 1024);     //
    
        cout << buf << endl;
    
        char c = cin.get();         //如果读取不到 则会停留 等待输入
        if (c == '
    ')
        {
            cout << "换行还在缓冲区" << endl;
        }
        else {
            cout << "换行不在缓冲区" << endl;
        }
    }

    结果:

    cin.ignore 忽略 (N) N代表忽略字符数

    void test04()
    {
        //cin.ignore()   //不加参数 忽略一个字符 ,有参数N 代表忽略N个字符
        cin.ignore(2);
        char buf[1024];
        cin.get(buf, 1024);
        cout << "buf= " << buf << endl;
    }

    结果:

    cin.peek 偷窥   偷看1个字符然后放回去

    void test05()
    {
        //cin.peek()   //偷窥 偷看一眼 再放回缓冲区 该字符没有被获取 还在缓冲区
        char c = cin.peek();
        cout << "c = " << c << endl;
    
        c = cin.get();
        cout << "c = " << c << endl;
    }

    结果:

    cin.putback  放回 把字符放回缓冲区

    void test06()
    {
        //cin.putback();    //放回
        char c = cin.get();
        cin.putback(c);
    
        char buf[1024];
        cin.getline(buf, 1024);
    
        cout << buf << endl;
    }

    结果:

  • 相关阅读:
    zombie处理
    exec
    fork
    udp program
    PS中进程状态
    关闭socket连接最好的方法
    setsockopt
    【Python】Webpy 源码学习
    web.py 安装
    WSGI、flup、fastcgi、web.py的关系
  • 原文地址:https://www.cnblogs.com/yifengs/p/15185179.html
Copyright © 2020-2023  润新知