将文件中的数据加载到一维数组中

时间:2017-11-26 22:44:18

标签: c++ arrays file-handling

我对编码很新,我不完全确定如何做到这一点。我有一个.txt文件填充十六进制值。我需要加载这些值并将它们存储在C样式数组中,每个值用逗号分隔。数组必须是一维的,因此如果要将其打印到命令行,则所有值都在同一行上。我已经看过使用ifstream的二维数组的例子,但是我似乎无法将这些值放到一维数组中。

我正在使用的.txt文件可以在这里找到:https://drive.google.com/open?id=1dhNf00jookFqxnBwFhuL9VGpAjvRV2Pm

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

要将值放在一维数组中,每次读取新值时,只需将所有操作附加到数组的末尾即可。像std :: vector这样的东西:

auto results = new vector<vector<int>>

其中GetHex使用逗号从字符串中提取整数。如果您确实需要使用C风格的数组,则需要读取文件两次或将输入的大小放在文件的顶部,因为在填充之前需要知道C风格数组的大小它出来了。

答案 1 :(得分:0)

为了达到你所需要的,你可以做这样的事情:

std::fstream file("somefile.txt");
std::string line;
std::vector<int> lines;
while(file >> line) lines.push_back(GetHex(line));
int results[lines.size()];
for(int i = 0; i<lines.size(); ++i) results[i] = lines[i];