• C++ cin和while cin


    int main(){
        
        string input;
        vector<string> arr;
        
        while(cin >> input)
        {
            cout << "start"<<endl;
            arr.push_back(input);
        }
    
        cout << arr[arr.size()-1].length() <<endl;
        return 0;
    }
    

    输入 has map 得到的结果是出现了两次start打印。这是为什么?
    输入了 的时候发生了什么? 实际上,cin的原理是将输入的内容放入缓冲区,每当遇到 后,将缓冲区内容输入至程序。即,输入 后,cin>>input会正式执行。
    由于input的类型是string, 所以 cin会跳过空格类的字符。于是while循环体执行了两次循环,分别将has 和 map两个字符串输入至input中。
    而如果没有while循环的话cin只会执行向input中输入遇到的第一个字符串,便会结束,所以会用到while(cin >> input)
    while(cin >> input)遇到 的时候实际上cin >> input就会执行,将缓冲区的所有字符串循环放入input中,然后执行循环体中的指令,执行完毕后重新回到循环体开头,等待下一次从键盘中输入的内容。
    如果想终止循环体,则输入Ctrl+D。

    所以求题目字符串最后一个单词的长度,可以直接用以下的代码完成:

    #include<iostream>
    #include<string>
    #include<vector>
    using namespace std;
    int main(){
        
        string input;
        vector<string> arr;
        while(cin >> input)
        {
            arr.push_back(input);
        }
        cout << arr[arr.size()-1].length() <<endl;
        return 0;
    }
    
  • 相关阅读:
    JavaScript学习
    jenkins 的 ProcessTreeKiller----无法启动子进程的解决办法
    Zend studio 10.6 配置XDEBUG
    建立php开发环境(XAMPP + Xdebug+Zend Studio)
    [转]linux(centos)搭建SVN服务器
    【转】单身是最好的增值时期
    Hadoop核心组件
    数据节点中数据库的存储
    HDFS
    CSS:IE,Chrome,Firefox兼容性和CSS Hack(转载)
  • 原文地址:https://www.cnblogs.com/goto2091/p/13762307.html
Copyright © 2020-2023  润新知