C ++ getline()跳过空字符串

时间:2013-03-21 21:22:39

标签: c++ getline stringstream

我正在阅读我的c ++程序csv文件:

abc;def;ghi

10;;10

通过此代码:

    while(getline(in, str, '\n')){
      stringstream ss;
      while(getline(ss, str, ';')){
         line.add(str);
      }
    }

在输入文件中,str是字符串变量,line是我的集合(如vector)。但是getline跳过了csv文件中的空字符串。

任何人都可以帮我读空字符串吗?

谢谢:)

1 个答案:

答案 0 :(得分:2)

你从来没有初始化你的流!

试试这个:

#include <string>   // for std::string and std::getline
#include <sstream>  // for std::istringstream

for (std::string jimbob; std::getline(in, jimbob); )
{
    std::istringstream marysue(jimbob);  // !
    for (std::string charlie; std::getline(marysue, charlie, ';'); )
    {
        line.add(charlie);
    }
}