使用ifstream提取文件内容

时间:2015-11-09 02:29:24

标签: c++ ifstream getline

这是对我想要实现的目标的一点描述:

我有一个文本文件,我必须从中提取数据。此数据代表有关8人的基本信息,对于每个人,文本文件中使用了6行信息:

例: 第1行:名称,第2行:姓氏,.....第7行:姓名,第8行:姓氏等...

在所有这些信息之后,有更多数据以不同的方式格式化。

数据的第二部分除以字符'$'。

我成功地提取了所有人的数据,但如何更改提取文本文件数据的第二部分的方式?我认为我可以更改我的提取方法,其中的注释是(见代码)

这是我提取第一部分数据的代码:

if (inputFile.is_open()) {
        for (int i = 0; i < 8; i++) {
            string name, last_name, dob, number, street, city;
            getline(inputFile, name);
            getline(inputFile, last_name);
            getline(inputFile, dob);
            getline(inputFile, number);
            getline(inputFile, street);
            getline(inputFile, city);
            Person p = Person(name, last_name, atoi(dob.c_str()));
            Address a = Address(atoi(number.c_str()), street, city);
            Directory::register(p, a);
        }
        //Code for 2nd part of data should be here no?
} else {
    throw logic_error("File can't be opened");
}

1 个答案:

答案 0 :(得分:0)

我设法使用另一个for循环使其工作并忽略每个数据集的字符inputFile.ignore('$', '\n');

感谢大家的帮助