Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从大尺寸的.csv文件转换为二维数组_C++_Arrays_Opencv_Csv - Fatal编程技术网

C++ 从大尺寸的.csv文件转换为二维数组

C++ 从大尺寸的.csv文件转换为二维数组,c++,arrays,opencv,csv,C++,Arrays,Opencv,Csv,我在.csv文件中存储了HOG特征,该文件的尺寸为1967 X 2916。当我试图将值存储在一个简单的2D数组中时,我无法执行该过程。但可以运行到88 X 2916的尺寸。你能告诉我这背后的原因吗? 我使用的以.csv格式存储的功能可以在这里找到 代码看起来像这样 #include<fstream> #include <sstream> using namespace std; int main(){ float dataset[1967][2916];

我在.csv文件中存储了HOG特征,该文件的尺寸为1967 X 2916。当我试图将值存储在一个简单的2D数组中时,我无法执行该过程。但可以运行到88 X 2916的尺寸。你能告诉我这背后的原因吗? 我使用的以.csv格式存储的功能可以在这里找到

代码看起来像这样

 #include<fstream>
 #include <sstream>

 using namespace std;

 int main(){

 float dataset[1967][2916];
 ifstream file("data.csv");

for(int row = 0; row < 1967; ++row)
{
    std::string line;
    std::getline(file, line);
    if ( !file.good() )
        break;

    std::stringstream iss(line);

    for (int col = 0; col < 2916; ++col)
    {
        std::string val;
        std::getline(iss, val, ',');
        if ( !iss.good() )
            break;

        std::stringstream convertor(val);
        convertor >> dataset[row][col];
    }
}

for(int p=0;p<1967;++p)
{
    cout<<endl;
    for(int q=0;q<2916;++q)
    {
        cout<<dataset[p][q]<<"\t";
    }
}

return 0;
#包括
#包括
使用名称空间std;
int main(){
浮动数据集[1967][2916];
ifstream文件(“data.csv”);
对于(int行=0;行<1967;++行)
{
std::字符串行;
std::getline(文件,行);
如果(!file.good())
打破
std::stringstream iss(线路);
for(整数列=0;列<2916;++col)
{
std::字符串val;
std::getline(iss,val,,);
如果(!iss.good())
打破
std::stringstream转换器(val);
转换器>>数据集[行][col];
}
}

对于(int p=0;p这可能是堆栈溢出,考虑到您在何处发布此消息,这很讽刺。堆栈通常限制在1-2MB左右(可以通过编程更改)

您可以通过使
数据集
全局化来进行快速测试,从而将其移出堆栈:

float dataset[1967][2916];
int main(){
...
如果测试有效,您应该将
dataset
放在堆上


相关:

调试并查看它在哪里停止?!