我对几天前上课时的新编程工作非常困惑。它要求我们从包含未知行数和列数的文件中读取信息,然后对数据进行排序。我的问题是我该怎么做?
我的理由是,如果我知道列数,我会创建一个结构数组,然后为每一行创建一个新结构。但由于列数也未知,我不知道如何处理这个问题。
此外,我们只允许使用<iostream>
<fstream>
,<cctype>
和<vector>
个库。
答案 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()手册以供参考。