我需要逐字读取给定文件的一行。 该文件记录了不同学生的考试成绩。特别是对于任何学生来说, 行格式如下:
-名称--姓氏-
然后,第二行使用以下格式报告每次考试的成绩:
1级-2级-3 [...]级n-
我创建了一个Student类,并希望将成绩放入一个int数组中。 我知道如何逐字阅读文件,但我不知道一旦学生的成绩结束就如何停止(因为我不知道任何给定学生的成绩如何。) 我本以为要写一阵子重复声明,但我不知道情况会怎样。
有没有一种方法可以逐字逐行阅读,然后在行结束后停止阅读?
这是我到目前为止写的:
cout << "Inserisci il nome del file da analizzare: " << endl;
cin >> _filename;
fstream myfile;
myfile.open(_filename);
if (myfile.is_open())
{
myfile >> _name >> _surname >> ; //reading name and surname
}
答案 0 :(得分:1)
std::getline
阅读一行文本。std::istringstream
从行中读取每个令牌。std::string line;
if ( ! std::getline(myfile, line) )
{
// Problem reading the line.
// Deal with error.
}
else
{
// Read line successfully.
std::istringstream str(line);
std::string token;
while ( str >> token )
{
// Use token.
}
}