使用“>>”从文件中读取

时间:2012-05-13 08:45:20

标签: c++ file

我有以下人员档案:

Name 0744112233 ASD

和以下代码

const string InFilePersonRepository::PFILE = "persons";

void InFilePersonRepository::load() {
        string delim = " ";
        string name, phone, address;
        ifstream fin(PFILE.c_str());
        while (fin.good()){
            fin>>name>>delim>>phone>>delim>>address;
            Person p(name,phone,address);
            persons.push_back(p);
        }
}

阅读完成后,姓名,电话,地址的值为:name = Name,phone = ASD, address =“”,

如果文件有多行,同样的问题,则跳过文件中的第二个字段。为什么会这样?

由于

2 个答案:

答案 0 :(得分:3)

>>会跳过空格,因此不需要delimfin >> name >> phone >> address应该这样做。

答案 1 :(得分:1)

尝试类似的东西

 void InFilePersonRepository::load() {
            string name, phone, address;
            ifstream fin(PFILE.c_str());
            while (fin.good()){
                fin>>name>>phone>>address;
                Person p(name,phone,address);
                persons.push_back(p);
            }
    }