我正在研究一个我正在接受的类的问题,我们需要将文本从文件读取到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#表示。我一直在寻找几种不同的方法来隔离每个字段,以便我可以将它保存到数组中,但到目前为止还没有找到任何适合我目的的方法。
我几个小时以来一直在反对这个问题,我真的很感激有关如何让它发挥作用的任何建议。
答案 0 :(得分:3)
考虑使用std::getline
,因为它允许您指定分隔符(在您的情况下,分隔符为#
)。
std::ifstream file("somefile.txt");
std::string field1;
std::getline(file, field1, '#'); // Ain el Beida
请注意,每个字段实际上都用空格和#
分隔,因此在某些情况下您将有前导/尾随空格。
因为这是一堂课,我会让你弄明白其余的!