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

读string时 >> 与 getline的区别

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

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

你可能感兴趣的:(读输入流时>> 和getline的区别)