美文网首页
读输入流时>> 和getline的区别

读输入流时>> 和getline的区别

作者: FakeCSer爱去网吧 | 来源:发表于2020-11-02 17:22 被阅读0次

    读string时 >> 与 getline的区别

    1. >>
      使用 >>读string时,从第一个非空白字符开始读取,读取到下一个空白字符的时候停止读取。
      如下代码中,while(in>>word), 从文件中读,每次读一个单词。
    //用map计算文本中单词出现的次数
    int main(int argc,char * argv[])
    {
        ifstream in("argv[1]");
        if(!in)
        {
            cout <<"打开文件失败"<<endl;
            exit(1);
        }
    
        //size_t,无符号整形
        map<string,size_t>word_count;
        string word;
        while(in>>word)
            //计数的核心代码,用map
            ++word_count[word];
        for(const auto &w:word_count)
            cout << w.first << "出现了" <<w.second<<"次"<<endl;
        return 0;
    }
    
    1. getline(流(任何istream:cin,ifsteam,istringstream),T buf),
      此函数可读取整行,包括前导和嵌入的空格,并将其存储在字符串对象中。

    总结: >> 不读空格,getline读空格

    相关文章

      网友评论

          本文标题:读输入流时>> 和getline的区别

          本文链接:https://www.haomeiwen.com/subject/dxbmvktx.html