【发布时间】:2011-07-12 06:29:28
【问题描述】:
我有一个类似这样的文本文件。
lastname firstname, id
我想浏览文本文件并将每条记录添加到具有 3 个变量的单个向量中:lastname, firstname, id
这是我正在使用的代码,但由于某种原因,我没有得到我想要的输出。
int Student::readStudents(vector<Student> &term){
ifstream infile("spring2011.txt");
if ( !infile ) {
cout << "Error attempting to open file ... "
<< "(Perhaps it dosen't exist yet?)" << endl;
return -1; // report error condition ...
}
term.clear(); // empty the student vector
string lname,fname, id;
int j;
while(infile){
getline( infile, lname, ' ');
getline(infile,fname, ',');
getline(infile, id, ' ');
term.push_back( Student(lname, fname, id) ); // construct and add new Student
j++;
}
infile.close();
return j; //count of records
}
这是我用来在向量中显示记录的函数。
void Student::showStudents(vector<Student> &term){
for( size_t i=0; i< term.size(); ++i ){
cout << i+1 << ".\n"
<< "Name : " << term[i].getLastName()<<", "<< term[i].getFirstName()<< endl
<< "Student Number : " << term[i].getId() << endl;
}
}
【问题讨论】:
-
代码缩进四个空格。 不要使用标签过去。
-
到底出了什么问题?向量中没有存储任何内容吗?还是有其他问题?
-
向量中没有存储任何内容,我得到一个带有学生姓名的文本文件,例如 Bob Marley, 011.... 我想浏览文本文件并将 Bob 添加到 fname,marely到 lname 和 011 到 id... 并将其推入向量中.... 在我希望能够访问向量并打印它之后,它会像这样打印:
-
您应该尝试插入一些 cout,以便我们可以看到您实际读取和写入的内容。
标签: c++ parsing vector text-files