【发布时间】:2018-12-05 14:57:24
【问题描述】:
我正在尝试从我正在阅读的 .txt 中填充一个数组。我正在使用此代码作为读取文件的函数:
double* read_text(const char *fileName, int sizeR, int sizeC)
{
double* data = new double[sizeR*sizeC];
int i = 0;
ifstream myfile(fileName);
if (myfile.is_open())
{
while (myfile.good())
{
if (i > sizeR*sizeC - 1) break;
myfile >> *(data + i);
//cout << *(data + i) << ' '; // Displays converted data.
i++;
}
myfile.close();
}
else cout << "Unable to open file";
//cout << i;
return data;
}
现在,当我读取文件时,我试图从 1D 数据数组中获取元素并将它们存储到 2D 数组中。
我尝试在公共类中创建一个数组,但是我不知道如何将我正在读取的数据移动到二维数组。
我知道这不是很清楚,但基本上我正在使用最近邻搜索算法来比较 2 张图像。我已经拍摄了一张图像并使用上面的这段代码将其转换为值。但是现在我正在尝试将正在读取的数据存储到 2D 公共数组中?
【问题讨论】:
-
我不明白。已经有大量关于读取二维数组的示例和问题。在网上搜索“C++ 读取文件矩阵”或“c++ 读取文件二维数组”。
-
做
while (myfile.good())与while (!myfile.eof())和you should not not do that几乎一样。 -
你为什么要这样做? 1D 阵列比任何 2D 恶作剧都要好得多。您不能只重新映射索引以访问您已经拥有的一维数组吗?
-
@Someprogrammerdude 在这种情况下,没关系。尝试最终读取后没有完成任何“工作”,因此在正确的时间评估条件。我同意重新安排循环可以产生更多惯用的代码。
-
所以这里没有答案。通过返回一维数组,您正在做正确的事情。不要改变那个。这样更好。
标签: c++ arrays approximate-nn-searching