我的提示是:在这个程序中,我们将从一个名为student.txt的文件中输入100个学生的名字和分数。这个文件已经提供给你了。你必须使用两个向量变量,一个用来存储学生的名字,另一个用来存储学生的分数。
所引用的文本文件的格式如下:
詹姆斯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;
}发布于 2020-04-30 05:17:12
所以我认为你没有意识到你需要把问题分解成更小的步骤。您(大概)知道如何从文件中读取单个值,并且(大概)知道如何向向量添加值。你似乎意识到你需要某种循环。你必须做的是把这些技术放在一起,以达到你想要的整体效果。通常,当您这样做时,您需要引入变量来保存计算中的中间值。在这里,我们将把文件中的值读取到变量中,然后将这些变量中的值添加到向量中。
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
}你在评论中得到的建议,如果一个问题太复杂,你应该先做一个更简单的版本,这也是一个很好的建议。许多初学者,当被赋予一个大的或复杂的任务时,试着同时解决这个问题。专业人士不是这样工作的,初学者也不应该这样做。
https://stackoverflow.com/questions/61516195
复制相似问题