zoukankan      html  css  js  c++  java
  • get函数理解

    首先贴上一段代码:

    <span style="font-size:12px;">#include <iostream>
    #include<cstring>
    #include<cstdlib>
    #include<cstdio>
    using namespace std;
    int main()
    {
        char next;
        do{
            cin.get(next);
            cout<<next;
        }while(next!='
    ');
        return 0;
    }
    </span>

    输入:

    To  be or not to be

    输出:

    To  be or not to be


    其实刚开始我很不理解为什么输出是这个样子的。。。我所认为的是TToo bbee  oorr  nnoott  ttoo  bbee

    后来看了网上一些说法才理解。。。是自己对cin理解不透彻。。。

    因为我们每次输入数据后只有按下回车键才会从缓冲区交给程序处理。

    cin.get()用来从终端(键盘)读取一个字符[其实是从缓冲区读取],我们键入很多字符,包括换行符' ',都是放在缓冲区,按下回车键后才交出去给程序,cin.get(next),无非是把读取的字符赋值给next,通过一个while循环,不停的把读取到的字符给next,并且从缓冲区读取后输出(按下回车键以后),直到遇到' '读取' '赋值给next后就结束循环,相当于吃掉了很多没有用的字符。


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    (判断是否为弱联通分量) poj 2762
    (最大生成树) poj 1979
    (暴力) bzoj 2208
    (BFS) bzoj 1102
    (并查集) bzoj 1161
    (数学) bzoj 1800
    (博弈) bzoj 2460
    (dinic) poj 3469
    (双端队列优化的SPFA) bzoj 2100
    (判断负环) bzoj 2019
  • 原文地址:https://www.cnblogs.com/Tobyuyu/p/4965403.html
Copyright © 2011-2022 走看看