从txt文件读取数据的最简单方法

时间:2019-09-13 15:09:40

标签: c++

我想将.txt文件的内容存储为不同对象的属性,然后可以将其存储在向量中。有没有简单的方法可以做到这一点。

我的txt文件如下:

a0 0 4 0 10
a1 0 3 0 20
a2 0 2 0 30

我试图这样做,但出现错误。

class process {
    public:
        std::string name;
        int arrivalTime;
        int priority;
        int age;
        int ticketsReq;
        int time;

        process(std::string name, int arrivalTime, int priority, int age, int ticketsReq) {
            this->name = name;
            this->arrivalTime = arrivalTime;
            this->priority = priority;
            this->age = age;
            this->ticketsReq = ticketsReq;
            this->time = 0;

        }
  };

int main() {
  std::ifstream theFile("input.txt");
  int i = 0;
  std::vector<process> a;
  std::string nameT;
  int arrivalTimeT;
  int priorityT;
  int ageT;
  int ticketsReqT;
  int timeT;

  while(theFile>>nameT>>arrivalTimeT>>priorityT>>ageT>>ticketsReqT){
    a[i] = process (nameT,arrivalTimeT,priorityT,ageT,ticketsReqT);
    i++;
  }
}

1 个答案:

答案 0 :(得分:0)

好的,我至少看到了一个问题。

首先,vector假设您调用push_back将元素添加到vector中。您可以执行vector [index]来访问元素。但是您将会遇到范围问题。

第二,这行没有意义:

a[i] = process (nameT,arrivalTimeT,priorityT,ageT,ticketsReqT);

此时,您没有流程的“ this”。您将需要执行以下操作:

process myObj(nameT,arrivalTimeT,priorityT,ageT,ticketsReqT);
a.push_back(myObj);

从侧面来看,我个人从来没有将对象存储在std :: vector中。我存储指向对象的指针。我不知道是否有人可以对此发表评论,但请考虑会发生什么。您可能需要编写一个更简单的示例进行测试。