C++忽略使用字符串流进行读取的文本文件中的空白

C++ ignores blanks in a text file using a Stringstream for reading

本文关键字:读取 文本 文件 空白 字符串 C++      更新时间:2023-10-16

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

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++构建器,而是不想再使用 C。

最好的问候,非常感谢安德烈亚斯·霍恩伯格

我解决了我的问题。有一个非常好的解决方案,我在这里找到:

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

处理似乎也很棘手C++。