【问题标题】:Reading text fields from file with custom separator使用自定义分隔符从文件中读取文本字段
【发布时间】:2011-09-25 04:20:57
【问题描述】:

我正在为我正在学习的课程解决一个问题,我们需要将文本从文件读取到字符串的二维表(称为“字符串表 [] []”)。我正在阅读的文本文件格式如下:

Ain el Beida # - # - # OEB # Algeria # Africa # F # 42578 # 61997 # 90560 # #

Segbana # - # - # ALI # Benin # Africa # F # -1 # 10219 # -1 # #

Skelmersdale # - # - # LAN # England # Europe # F # 42611 # 42104 # 39279 # #

#

如你所见,每个字段都用'#'分隔,行尾用2个#表示,文件的结尾用3个#表示。我一直在研究隔离每个字段的几种不同方法,以便将其保存到数组中,但到目前为止还没有找到任何适合我的目的的方法。

我已经为此苦苦思索了几个小时,我非常感谢任何关于如何让它发挥作用的建议。

【问题讨论】:

    标签: c++ arrays istream


    【解决方案1】:

    考虑使用std::getline,因为它允许您指定分隔符(在您的情况下,分隔符是#)。

    std::ifstream file("somefile.txt");
    std::string field1;
    std::getline(file, field1, '#'); // Ain el Beida
    

    请注意,虽然每个字段实际上由一个空格和一个 # 分隔,因此在某些情况下您将有前导/尾随空格。

    既然是上课,剩下的就交给你吧!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多