首页 > 其他分享 >C语言读取csv文件并保存到二维数组

C语言读取csv文件并保存到二维数组

时间:2023-09-02 21:33:31浏览次数:43  
标签:mat ++ C语言 int token printf csv 读取

 

#include <stdio.h>
#include <string.h>
#include <time.h>
#define MAXCHAR 1024
#define MAXCOUNT 1000000
char *mat[MAXCOUNT][9]; // 如果放到main里面会有长度限制使应用程序退出,放在外面作为全局变量没有限制。

int main()
{
    clock_t start, end;
    start = clock();

    FILE *fp;
    char row[MAXCHAR];
    char *token;

    fp = fopen("big.csv", "r");
    int linecount = 0, i = 0, j = 0;

    while (fgets(row, MAXCHAR, fp))
    {
        linecount++;
        if (linecount == 1)
            continue; // Skip first line

        if (linecount - 1 > MAXCOUNT) // 实际输出的行数 要去掉上面跳过的1行
            break;

        token = strtok(row, ",");
        j = 0;
        while (token)
        {
            // printf("Token: %s\n", token);
            // printf("i=%d,j=%d\n", i, j);
            mat[i][j++] = strdup(token);
            token = strtok(NULL, ",");
        }
        i++;
    }
    fclose(fp);

    // for (int i = 0; i < MAXCOUNT; i++)
    // {
    //     for (int j = 0; j < 9; j++)
    //     {
    //         printf("mat[%d][%d]=%s\n", i, j, mat[i][j]);
    //     }
    // }

    puts(mat[405000][3]);

    end = clock();
    printf("time=%f\n", (double)(end - start) / CLOCKS_PER_SEC); // 读取速度跟python的pandas差不多
    return 0;
}

相关资料:

https://stdin.top/posts/csv-in-c/

https://stackoverflow.com/questions/20013693/read-csv-file-to-a-2d-array-on-c

标签:mat,++,C语言,int,token,printf,csv,读取
From: https://www.cnblogs.com/yuyanc/p/17674239.html

相关文章

  • 东方博宜OJ1009 数组逆序 C语言版
    题目描述给你 n 个整数,将其逆序输出。输入第一行一个整数 n (3≤n≤100)代表数的个数。第二行 n 个整数(空格隔开)(这些数在 0∼106 之间)。输出n 个整数(空格隔开)。样例输入3175输出571来源数组问题代码 #include<stdio.h>in......
  • 学生信息管理系统代码分享 - C语言控制台程序
    【代码要求】   设计与实现学生信息管理系统,实现对学生信息的管理,并且学生的学号是代表该学生信息的唯一性标志。另外学生信息包括:学号、姓名、性别、班级、身份证号、出生日期、联系方式。   该系统具有以下几个功能:   1.系统界面美观、简洁,采用菜单式显示......
  • 学生信息管理系统代码分享 - C语言控制台程序
    【代码要求】   设计与实现学生信息管理系统,实现对学生信息的管理,并且学生的学号是代表该学生信息的唯一性标志。另外学生信息包括:学号、姓名、性别、班级、身份证号、出生日期、联系方式。   该系统具有以下几个功能:   1.系统界面美观、简洁,采用菜单式显示......
  • 东方博宜OJ1007 统计大写字母的个数 C语言版
    题目描述算算以'.'结束的一串字符中含有多少个大写的英文字母。输入输入一串字符(长度不超过 8080 ),以'.'结束。输出输出一行,即这串字符中大写字母的个数。样例输入PRC,PRC,I'mfromChina.输出8来源字符串代码#include<stdio.h>intm......
  • java opencv读取rtsp
     要使用Java和OpenCV读取RTSP流,您需要使用JavaCV库。JavaCV是一个Java绑定库,它提供了与OpenCV的接口,使您可以在Java中方便地使用OpenCV的功能。以下是一个简单的Java程序,它使用JavaCV库从RTSP流中读取视频帧: importorg.bytedeco.javacv.*;publicclassRTSPReader{p......
  • C语言生成随机数问题
    (C语言生成随机数问题)rand函数rand-C++Reference(cplusplus.com)rand()函数是专门用来生成随机数的rand()返回的是0~RAND_MAX(32767)之间的随机数rand()函数在头文件stdlib.h中,使用前要导入这个头文件因为rand默认生成随机数范围是0~32767,这是一段很大的范围,所以我们需......
  • 东方博宜OJ 打印星号三角形 C语言版
    题目描述打印星号三角形。输入输入只有一行,包括 11 个整数 n , n 代表行数。输出输出 n 行。样例输入5输出************************************************************************......
  • 东方博宜OJ1000 熟悉一下Online Judge的环境 C语言版
    题目描述请不要笑。用来适应环境的题目,自然比较简单些。计算 22个整数的和,这两个整数都在 11到 100之间。输入输入只有一行,包括 22 个整数 a , b ,之间用一个空格分开。输出输出只有一行,包括 11 个整数。样例输入12输出3说明使用O......
  • 东方博宜OJ1002 编程求解1+2+3+...+n C语言版
    题目描述编程求解下列式子的值:n=1+2+3+⋯+n。输入输入一行,只有一个整数n(1≤n≤1000) 。输出输出只有一行(这意味着末尾有一个回车符号),包括 1 个整数。样例输入100输出5050来源简单循环代码  ......
  • 东方博宜OJ1003 - 编程求1+3+5+...+n C语言版
    题目描述编程求 1+3+5+⋯+n 。输入输入一行,只有一个整数 )n(1≤n<10000) 这里 n 为奇数。输出输出只有一行。样例输入99输出2500来源简单循环代码  ......