C语言读取多个csv表格



#include <stdlib.h>
#include<stdio.h>
#include <iostream>
using namespace std;


//=================================================================================
double ** my_readcsv(char *path, int ROWS, int COLS)
{
    FILE *fp = NULL;
    fp = fopen(path, "at+");
    if ( NULL == fp )
    {
            cout << "Failed to open " << path << endl;
    }


    double *arr1=NULL;
    arr1 = (double *)malloc(ROWS*COLS*sizeof(double));
    double **arr2=NULL;
    arr2 = (double **)malloc(ROWS*sizeof(double *));
    for(int r=0; r<ROWS; r++)
    {
    	arr2[r] = arr1 + r*COLS;
    }

    char d;
    int ret=1;
    int i = 0;

    while ( ret != EOF && i < ROWS )
    {
    	for(int j=0; j<COLS; j++)
    	{

            ret = fscanf( fp, "%lf", &arr2[i][j]);
            ret = fscanf( fp, ",", &d);

    	}

    	i++;
    }
    fclose(fp);

    return arr2;

}


//=================================================================================
double *** get_ImageMTF()
{

	int ROWS=16;
	int COLS=16;
	char path_rdc[260];
	char path_gdc[260];
	char path_bdc[260];
	char path_rac[260];
	char path_gac[260];
	char path_bac[260];

	strcpy(path_rdc, "/home/zlf/Documents/code/MTF/MTF_rdc.csv");
	strcpy(path_gdc, "/home/zlf/Documents/code/MTF/MTF_gdc.csv");
	strcpy(path_bdc, "/home/zlf/Documents/code/MTF/MTF_bdc.csv");
	strcpy(path_rac, "/home/zlf/Documents/code/MTF/MTF_rac.csv");
	strcpy(path_gac, "/home/zlf/Documents/code/MTF/MTF_gac.csv");
	strcpy(path_bac, "/home/zlf/Documents/code/MTF/MTF_bac.csv");


	double ***MTF;
	MTF = (double ***)malloc(6*sizeof(double **));

	double ** MTF_rdc=NULL;
	double ** MTF_gdc=NULL;
	double ** MTF_bdc=NULL;
	double ** MTF_rac=NULL;
	double ** MTF_gac=NULL;
	double ** MTF_bac=NULL;

    MTF_rdc = my_readcsv(path_rdc, ROWS, COLS);
    MTF_gdc = my_readcsv(path_gdc, ROWS, COLS);
    MTF_bdc = my_readcsv(path_bdc, ROWS, COLS);
    MTF_rac = my_readcsv(path_rac, ROWS, COLS);
    MTF_gac = my_readcsv(path_gac, ROWS, COLS);
    MTF_bac = my_readcsv(path_bac, ROWS, COLS);


    MTF[0] = MTF_rdc;
    MTF[1] = MTF_gdc;
    MTF[2] = MTF_bdc;
    MTF[3] = MTF_rac;
    MTF[4] = MTF_gac;
    MTF[5] = MTF_bac;

    return MTF;

}



int main()
{

	double ***arr3=NULL;

	arr3 = get_ImageMTF();
    for(int k=0; k<6; k++)
    {
        for(int i=0; i<16; i++)
        {
        	for(int j=0; j<16; j++)
        	{
        		printf("%f  ", arr3[k][i][j]);
        	}
        	printf("\n");
        }
        printf("\n\n");
    }

	return 0;
}
















  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值