zoukankan      html  css  js  c++  java
  • 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;
    }
    
  • 相关阅读:
    WebApp 里Meta标签大全,webappmeta标签大全
    写给自己的Java程序员学习路线图
    JAVA学习路线图
    JavaScript经典作用域问题(转载)
    js 判断当前操作系统是ios还是android还是电脑端
    css动画,展开折叠图标
    CSU 1335 高桥和低桥
    codevs 1341 与3和5无关的数
    noi 7827 质数的和与积
    51nod 1082 与7无关的数
  • 原文地址:https://www.cnblogs.com/goto2091/p/13762307.html
Copyright © 2011-2022 走看看