使用自定义分隔符从文件读取文本字段

时间:2011-09-25 04:20:58

标签: c++ arrays istream

我正在研究一个我正在接受的类的问题,我们需要将文本从文件读取到2d字符串表(称为'string table [] []')。我正在读的文本文件格式如下:

  

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#表示。我一直在寻找几种不同的方法来隔离每个字段,以便我可以将它保存到数组中,但到目前为止还没有找到任何适合我目的的方法。

我几个小时以来一直在反对这个问题,我真的很感激有关如何让它发挥作用的任何建议。

1 个答案:

答案 0 :(得分:3)

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

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

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

因为这是一堂课,我会让你弄明白其余的!