我正在做一个作业,我的教授希望我打开并阅读其中带有不同字符串的.txt文件。我们应该格式化文件的内容。
例如:
read_grade_file方法具有参数int number_of_students
文件的第一行是“ number_of_students 9”
我已经打开并读取文件,并将每一行插入一个字符串向量中。
如何单独在第一行中获取数字9,以便使number_of_students参数等于它? 请帮忙。
(允许我们从向量中跳过或删除任何不相关的数据)。
我的代码:
void Read_Grade_File(string names[MAX_CLASS_SIZE][2], int scores[MAX_CLASS_SIZE][MAX_NUMBER_OF_ASSIGNMENTS], int *number_of_students, int *number_of_assignments, const string input_filename) {
string currline; // temporarily holds the content of each line read from the file
ifstream inFile; // filestream
vector<string> content; // vector containing each string from the file
inFile.open(input_filename); //open the file.
if (inFile.is_open()){
// reads file and pushes the content into a vector
while(!inFile.eof()){
getline(inFile, currline);
if(currline.size() > 0){
content.push_back(currline);
}
}
}
// prints the content stored in the vector
for (int i = 0; i < content.size(); i++){
cout << content[i] << endl;
}
}
答案 0 :(得分:1)
与其一次读取整行,不如直接读取行上的各种值,这可能更有意义。例如,如果您知道文件的格式,则可以读取第一个变量的名称,然后读取变量的值,如下所示:
std::string variableName;
int variableValue;
inFile >> variableName;
inFile >> variableValue;
因此,您可以获取名称已知的变量,找到它们的值,然后循环遍历读取的许多记录中的其余文件。