首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从文件中读取数据并将文件中的名称存储在一个向量中,以及如何将该文件中的分数存储在另一个向量中?

如何从文件中读取数据并将文件中的名称存储在一个向量中,以及如何将该文件中的分数存储在另一个向量中?
EN

Stack Overflow用户
提问于 2020-04-30 04:56:43
回答 1查看 284关注 0票数 0

我的提示是:在这个程序中,我们将从一个名为student.txt的文件中输入100个学生的名字和分数。这个文件已经提供给你了。你必须使用两个向量变量,一个用来存储学生的名字,另一个用来存储学生的分数。

所引用的文本文件的格式如下:

詹姆斯80

弗兰克67

珍妮95

我很难理解如何从一个文件中读取两个变量并将其存储到两个向量中,所以如果到目前为止我所拥有的没有意义,我不会完全感到震惊。在我的>>上有一条错误消息,在infile之后,它说没有与这些操作数相匹配的操作符,我不知道该怎么做。此外,我只是不知道从哪里出发,也不知道如何修复我当前的代码。任何帮助都是非常感谢的。请对我耐心点,我对这件事很陌生。

代码语言:javascript
运行
复制
//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;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-30 05:17:12

所以我认为你没有意识到你需要把问题分解成更小的步骤。您(大概)知道如何从文件中读取单个值,并且(大概)知道如何向向量添加值。你似乎意识到你需要某种循环。你必须做的是把这些技术放在一起,以达到你想要的整体效果。通常,当您这样做时,您需要引入变量来保存计算中的中间值。在这里,我们将把文件中的值读取到变量中,然后将这些变量中的值添加到向量中。

代码语言:javascript
运行
复制
    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
    }

你在评论中得到的建议,如果一个问题太复杂,你应该先做一个更简单的版本,这也是一个很好的建议。许多初学者,当被赋予一个大的或复杂的任务时,试着同时解决这个问题。专业人士不是这样工作的,初学者也不应该这样做。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61516195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档