gpt4 book ai didi

c++ - 如何从文本文件中读取一组值,然后转到下一行并执行相同的操作

转载 作者:行者123 更新时间:2023-11-30 02:54:43 24 4
gpt4 key购买 nike

我正在尝试阅读这样的列表

James  John 15 5 1
Douglas Frank 23 8 1
Bnejamin Zach 17 1 4

并将每个值存储到一个单独的变量中。名称是字符串,其他数字是 float 和整数。到目前为止,我可以从一行中获取数据,但我不知道如何进入下一行并执行相同的操作。到目前为止,这是我的代码。

#include <iostream>
#include <string>
#include <fstream>


using namespace std;

int main()
{
ifstream employees;
string lastname, firstname, lastname1, firstname1, lastname2, firstname2;
float base, sales, base1, sales1, base2, sales2;
int years, years1, years2;


employees.open("employees.txt");

while (employees)

{
employees >> lastname >> firstname >> base >> sales >> years;

我想让它尽可能简单,我根本不知道用户定义的函数、数组或 vector 。那么有没有一个简单的函数可以在几年后结束这条线?并转到下一行并继续?

谢谢。

最佳答案

使用数组。每当你以“我想给这个变量添加一个数字,因为我想要不止一个”结束时,如果数字超过 2,那么你真的应该使用数组(除非非常特殊的情况)。

您可能还想使用一个结构来存储不同的值(名字、姓氏、基数、销售额和年份)——这样,您只会得到一个数组,而不是几个不同的数组。

因为这是 C++,数组意味着 vector。换句话说:

struct employee
{
string firstname, lastname;
float base, sales;
int years;
};


vector<employee> emp_table;

employee e;

while (employees >> e.firstname >> e.lastname >> e.base >> e.sales >> e.years)
{
emp_table.push_back(e);
}

请注意,我将员工的输入作为 while 条件。这避免了额外的循环迭代和在到达文件末尾时“推回”最后一个条目的第二个拷贝。

关于c++ - 如何从文本文件中读取一组值,然后转到下一行并执行相同的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16878259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com