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



我想将.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++;
}
}

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

首先,向量假设您调用push_back将元素添加到向量。你可以做vector[index]来访问一个元素,一旦它存在。但是你会遇到一个范围问题。

其次,这句话没有意义:

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

在你这样做的时候,你没有一个"这个"的过程。您需要执行以下操作:

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

作为旁白,我个人从不将对象存储在 std::vector 中。我存储指向对象的指针。我不知道其他人是否可以对此发表评论,但请考虑会发生什么。您可能希望编写一个更简单的示例来测试这一点。

最新更新