如何将数据从文本文件读取到结构数组中

丹尼尔·H

我正在尝试从一个名为的文本文件中读取数据,该文件fields.txt包含的成员struct Fields

{1, 0, 7.4, 39.5, 5.33784}, 
{3, 1, 4.6, 27.9, 6.06522}, 
{5, 2, 2.2, 12.5, 5.68182}, 
{8, 0, 14.5, 86, 5.93103}, 
{11, 1, 8, 43.8, 5.475}, 
{16, 2, 5.9, 37.7, 6.38983}, 
{22, 0, 12.7, 72, 5.66929}, 
{24, 1, 10.5, 63.2, 6.01905} 

我希望程序将数据读取到称为struct的数组中,Fields fielddata[8] = {};以便能够使用数据创建显示。

#include<iostream>
#include<fstream> 

using namespace std;
std::ifstream infile("fields.txt");

int initialise(int field, int crop, float size, float yof, float yph);

struct Fields {


int Field;
int Crop;
float Size;
float Yof;
float Yph;

int initialise(int field, int crop, float size, float yof, float yph)
{
    Field = field;
    Crop = crop;
    Size = size;
    Yof = yof;
    Yph = yph;

};

};



int main() {


Fields fielddata[8];

ifstream file("fields.txt");
if(file.is_open())
{


    int a, b, i = 0;
    float c, d, e;
    while (infile >> a >> b >> c >> d >> e)
    {
        fielddata[i].Field = a;
        fielddata[i].Crop = b;
        fielddata[i].Size = c;
        fielddata[i].Yof = d;
        fielddata[i].Yph = e;

        ++i;
    }


}




int highyph = 0;



cout << "Field\t" << "Crop\t" << "Size\t" << "YOF\t" << "YPH\t" << endl;

for (int i = 0; i < 8; i++) {


    cout << fielddata[i].Field << "\t" << fielddata[i%3].Crop << "\t" << fielddata[i].Size << "\t" << fielddata[i].Yof << "\t" << fielddata[i].Yph << "\t" << endl;
}


for (int i = 0; i < 8; i++)
{
    if (fielddata[i].Yph > highyph)
        highyph = fielddata[i].Field;
}

cout << "The Field with the Highest Yield is " << highyph << endl;




system("Pause");
    return 0;
}
基诺·克莱顿

编辑:要专门处理OP帖子中显示的输入类型(外面有花括号的逗号分隔符),就可以完成此操作。这个主意

//Get each line and put it into a string
String line;
while (getline(infile, line)) {
     istringstream iss{regex_replace(line, regex{R"(\{|\}|,)"}, " ")};
     vector<float> v{istream_iterator<float>{iss}, istream_iterator<float>{}};

     //Assigns each member of the struct to a member of the vector at the relevant position
     fielddata[i].Field = static_cast<int>(v.at(0));
     fielddata[i].Crop = static_cast<int>(v.at(1));
     fielddata[i].Size = v.at(2);
     fielddata[i].Yof = v.at(3);
     fielddata[i].Yph = v.at(4);
     ++i;
}

基本上,这里发生的是:

  1. 程序从文件中读取一行并将其放入String line(直到没有更多行要读取[EOF])。
  2. 一个inputstringstream替代逗号和花括号出现的所有与空间,便于采集。
  3. 然后,我们使用向量获取剩余的所有数字iss
  4. struct fielddata然后,在向量的每个相关位置给的每个成员值。由于向量的类型为,因此我们将前两个转换为整数float

这个线程

首先,做一个ifstream

#include <fstream>
std::ifstream infile("thefile.txt");

假设每一行包含两个数字,并逐个令牌读取令牌:

   int a, b;
   while (infile >> a >> b)
   {
        // process pair (a,b)
   }

您只需要创建5个变量即可与您要放入每个结构的数据类型匹配。例如2 ints,3 floats。然后,您只需遵循上面概述的格式,然后将每个变量分配给该结构的每个成员。

同样,建议在main的开头而不是在中间初始化所有变量。

还有一点帮助可助您一臂之力。

    int a, b, i = 0;
    float c, d, e;
    while (infile >> a >> b >> c >> d >> e)
    {
        fieldData[i].Field = a;
        //Assign other struct members as you wish
        ++i; //Or use an inner for loop to do the incrementation
    }

如果您需要进一步的指导,请告诉我,但我想看看您如何处理它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将多个文本文件读取到pyspark中的数据框中

来自分类Dev

如何将文本文件读取到DataTable

来自分类Dev

Python:如何将包含行列格式的坐标的文本文件读取到xy坐标数组中?

来自分类Dev

如何将具有浮点数的文本文件读取到C中的浮点数组

来自分类Dev

将数据从文本文件读取到具有不同数据类型的结构中C#

来自分类Dev

从文本文件读取到结构

来自分类Dev

如何将文本文件读取为数组

来自分类Dev

将文本文件读取到Java对象数组

来自分类Dev

将文本文件读取到数组Java

来自分类Dev

如何将结构松散的文本文件中的表读入R中的数据框?

来自分类Dev

如何使用PLinq将2d文本文件读取到2d数组中

来自分类Dev

从文本文件将字符串读取到向量数组中的Char错误C ++

来自分类Dev

使用熊猫阅读器将文本文件读取到numpy数组中的问题

来自分类Dev

如何将文本文件中的数据成对?

来自分类Dev

如何将稀疏数据从文本文件导入/解析到MATLAB数组中?

来自分类Dev

如何使用php将文本文件读取到HTML表中?

来自分类Dev

我如何将Linux centos中的树样式目录获取到文本文件

来自分类Dev

如何将 Windows 服务列表及其状态提取到文本文件中?

来自分类Dev

如何将文本文件的数据保存到变量中并在php文件上读取/显示?

来自分类Dev

如何从我创建的文本文件中读取结构?

来自分类Dev

在 Clojure 中,如何从文本文件中读取分层数据结构?

来自分类Dev

在C中将整数读取到文本文件(结构中存在整数)

来自分类Dev

将具有布尔值的文本文件作为对象读取到数组列表中

来自分类Dev

封装并从文本文件读取到数组

来自分类Dev

从文本文件读取到数组列表

来自分类Dev

Java从文本文件读取到数组

来自分类Dev

从文本文件中读取数据作为列表数组

来自分类Dev

如何仅从文本文件中将具有未知数量整数的行读取到数组中(在 C 中)

来自分类Dev

如何将多个文本文件中的特定行提取到Linux上的单个txt文件中?

Related 相关文章

  1. 1

    如何将多个文本文件读取到pyspark中的数据框中

  2. 2

    如何将文本文件读取到DataTable

  3. 3

    Python:如何将包含行列格式的坐标的文本文件读取到xy坐标数组中?

  4. 4

    如何将具有浮点数的文本文件读取到C中的浮点数组

  5. 5

    将数据从文本文件读取到具有不同数据类型的结构中C#

  6. 6

    从文本文件读取到结构

  7. 7

    如何将文本文件读取为数组

  8. 8

    将文本文件读取到Java对象数组

  9. 9

    将文本文件读取到数组Java

  10. 10

    如何将结构松散的文本文件中的表读入R中的数据框?

  11. 11

    如何使用PLinq将2d文本文件读取到2d数组中

  12. 12

    从文本文件将字符串读取到向量数组中的Char错误C ++

  13. 13

    使用熊猫阅读器将文本文件读取到numpy数组中的问题

  14. 14

    如何将文本文件中的数据成对?

  15. 15

    如何将稀疏数据从文本文件导入/解析到MATLAB数组中?

  16. 16

    如何使用php将文本文件读取到HTML表中?

  17. 17

    我如何将Linux centos中的树样式目录获取到文本文件

  18. 18

    如何将 Windows 服务列表及其状态提取到文本文件中?

  19. 19

    如何将文本文件的数据保存到变量中并在php文件上读取/显示?

  20. 20

    如何从我创建的文本文件中读取结构?

  21. 21

    在 Clojure 中,如何从文本文件中读取分层数据结构?

  22. 22

    在C中将整数读取到文本文件(结构中存在整数)

  23. 23

    将具有布尔值的文本文件作为对象读取到数组列表中

  24. 24

    封装并从文本文件读取到数组

  25. 25

    从文本文件读取到数组列表

  26. 26

    Java从文本文件读取到数组

  27. 27

    从文本文件中读取数据作为列表数组

  28. 28

    如何仅从文本文件中将具有未知数量整数的行读取到数组中(在 C 中)

  29. 29

    如何将多个文本文件中的特定行提取到Linux上的单个txt文件中?

热门标签

归档