如何存储具有不同列数和行数的表? C ++

时间:2016-02-05 19:16:16

标签: c++ database sorting

我对几天前上课时的新编程工作非常困惑。它要求我们从包含未知行数和列数的文件中读取信息,然后对数据进行排序。我的问题是我该怎么做?

我的理由是,如果我知道列数,我会创建一个结构数组,然后为每一行创建一个新结构。但由于列数也未知,我不知道如何处理这个问题。

此外,我们只允许使用<iostream> <fstream><cctype><vector>个库。

3 个答案:

答案 0 :(得分:0)

您可以使用

std::vector<std::vector<WhateverTypeYouWantToStore>>

答案 1 :(得分:0)

使用std :: vector。您可以创建这样的2D矢量:

vector<vector<string> > table;

然后从文件中读取行,并将数据放入一维向量(vector<string> line)。然后,您可以将行向量push_back到表中,如下所示:

table.push_back(line);

您可以在此页面上查看有关矢量的更多信息:cplusplus.com

答案 2 :(得分:0)

我希望您必须知道要从文本文件的行和列中读取的数据格式。首先要了解,您将阅读第一行,然后是第二行,依此类推。如果您不知道数据类型,那么请将所有数据都视为字符串。所以,你可以假设你在哪里罚款null char&#39; \ 0&#39;然后你要找到第一行的数据,所以继续按字符阅读下一个&#39; \ 0&#39;。然后,无论你在哪里找到&#39; \ n&#39;这将是第一行的最后一点,你刚刚发现了最后一列。在&#39; \ n&#39;之后你将开始阅读第二行,依此类推。通过这个,您可以确定有多少行和列。你继续阅读文本文件,直到你达到EOF。 请参见附图。 Text File Format 另外,定义一个指向字符类型的指针,并使用realloc为其分配内存。使用realloc()可以增长它,因为您可以找到更多数据。请查看realloc()手册以供参考。