我的提示询问:在该程序中,我们将从名为的文件中输入100名学生的姓名和分数student.txt。该文件已提供给您。您必须使用两个向量变量,一个用于存储学生姓名,另一个用于存储学生分数。
所引用的文本文件格式如下:
詹姆斯80
弗兰克67
珍妮95
我正在努力了解如何将一个文件中的两个变量读取并存储到两个向量中,因此,如果到目前为止我没有任何意义,我不会完全震惊。在infile之后,>>处有一条错误消息,提示没有与这些操作数匹配的运算符,我也不知道该怎么做。此外,我只是不知道从这里开始,或者如何解决我当前的代码。任何帮助表示赞赏。请耐心等待,我对此非常陌生。
//Name
//This program will read and sort names and grades from a file using functions and vectors
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
#include <vector>
using namespace std;
int main()
{
ifstream infile;
infile.open("student.txt");
if (infile.fail() == false)
{
vector<string> name;
vector<int> score;
while (infile >> name)
{
infile >> score;
}
}
else
{
cout << "Could not open the file." << endl;
}
return 0;
}
所以我认为您没有意识到需要将问题分解为更小的步骤。您(大概)知道如何从文件中读取单个值,并且(大概)知道如何向向量添加值。而且您似乎意识到需要某种循环。您要做的就是将这些技术放在一起以获得所需的整体效果。通常,当您执行此操作时,需要引入variables来保存计算中的中间值。就是这种情况,我们将文件中的值读入变量,然后将这些变量中的值添加到向量中。
vector<string> all_names;
vector<int> all_scores;
string name;
int score;
while (infile >> name >> score) // read one name and one score
{
all_names.push_back(name); // add that name to vector
all_scores.push_back(score); // add that score to vector
}
您在评论中得到的建议是,如果问题太复杂,则应该首先使用较简单的版本,这也是非常好的建议。许多初学者在执行大型或复杂任务时会尝试立即解决所有问题。专业人士不是那样工作的,初学者也不应该这样。