c++ - 需要帮助使用递归将文本文件中的信息输入到结构中吗?

标签 c++ recursion structure

我是 C++ 和一般编程的新手,所以在我尝试 self 解释时请耐心等待。

我需要将信息从 .txt 文件输入到结构中。文本文件中的信息如下:

11 12 13

莎莉

10 11 12

...

几乎结构需要包含名称、a(在情况 1、11 中)、b(在情况 1、12 中)和 c(在情况 1、13 中)。我希望以递归方式执行此操作,以便它遍历每个名​​称以及 a、b 和 c。我真的不知道从哪里开始,我真的只是在寻找一些指导。

我在想也许可以将名称放入一个 2D 字符数组,将 a、b 和 c 放入另一个 3D 字符数组?但我不太确定该怎么做,或者这样做的目的是什么。

感谢所有帮助!

好的,这就是我所拥有的。它处于非常早期的阶段,但它确实很重要。

#include<iostream>
#include<fstream>
using namespace std;

const int max_names=100, a=100, b=100, c=100;
char names[max_names];
int num1[a];
int num2[b];
int num3[c];


int main()
{
    ifstream inFile;
    inFile.open("data.txt");
    while(!inFile.eof())
    {
        for(int i=0; i<max_names; i++)
        {
                inFile>>names[i]>>num1[i]>>num2[i]>>num3[i];
        }
    }
    return 0;
}

struct Person
{
    char names[max_names];
    int num1[a];
    int num2[b];
    int num3[c];
}

编辑:虽然我不想使用递归/结构,但我必须在类里面使用。此外,在进一步查看我应该做什么时,我需要创建一个结构数组。这很难做到吗?我现在正在编写我认为是一些代码的东西,但我可能会完全离开。

我需要使用结构标识符。像“结构人”

编辑 2:是的,递归,是结构,没有迭代,没有类。它必须使用递归和结构。

最佳答案

我会考虑使用 ifstream在基本循环中读取文件。我认为递归不是这项工作的正确工具。

#include <iostream>
#include <fstream>
using namespace std;

int main () {    
  ifstream ifs("test.txt");

  while (ifs.good()) {
    struct foo;
    ifs >> foo.name >> foo.a >> foo.b >> foo.c;
  }

  ifs.close();    
  return 0;
}

这将允许任何空格来分隔 nameabc。如果您想更加小心空格(例如允许名称中有空格,您可以使用 peek() 来检查新行或切换到类似 fscanf 的内容。

关于c++ - 需要帮助使用递归将文本文件中的信息输入到结构中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5814370/

相关文章:

c++ - 此 C++ 代码给出了一个奇怪的警告

c++ - 如何解析/推导模板参数?

c++ - 在类内部的结构中使用枚举?

c++ - QML 应用程序 block

c++ - 为什么删除此return语句会影响整个递归函数的结果?

c - 将结构从一个列表的末尾移动到另一个列表的开头

c++ - 如何使用 C++ 中的通用 vector 对动态内存中的对象列表进行排序?

c - C中数组的递归求和

Java - 理解递归

c - 嵌入式 C 利用复杂结构中的标志