C ++使用Stringstream忽略文本文件中的空格进行读取

时间:2018-01-28 20:28:45

标签: c++ stringstream

我尝试从文本文件中读取几行,并希望将单个项目存储在结构中。代码如下所示:

std::string line;
struct _DomainTable_ line_of_file;
while (getline(infile_, line))
{
  std:: stringstream linebuffer(line);
  line_of_file.short_ = "";
  line_of_file.long_ = "";
  linebuffer >> line_of_file.id_ >> line_of_file.short_ << line_of_file.long_;
  domain_list_.push_back(line_of_file);
  it_++;
}

我的文本文件中的单个项目由空格分隔。 不幸的是,我的程序忽略了第二列和第三列之间的第二个空白,因此“id_”之后的整个文本存储在“short_”中。 也许有人知道一种更好的方法来读取格式化文件(例如C中的scanf)。我正在使用C ++ builder,而我不想再使用C.

非常感谢,非常感谢 AndreasHöhenberger

1 个答案:

答案 0 :(得分:0)

我解决了我的问题。我找到了一个非常好的解决方案:

https://stackoverflow.com/questions/1120140/how-can-i-read-and-parse-csv-files-in-c/1120224#1120224

在C ++下,字符串处理似乎也很棘手。