C语言读取csv文件

逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。建议使用WORDPAD或是记事本来开启,再则先另存新档后用EXCEL开启,也是方法之一。

#include

#include

#include

int get_row(char *filename);

int get_col(char *filename);

void get_relationship(int** data, char* filename, int col);

void main()

{

char filename[] = "./Example.csv";

int row, col;

row = get_row(filename);

col = get_col(filename);

printf("row = %d, col = %d\n", row, col);

int **data;

data = (int **)malloc(row * sizeof(int *));

for(int i=0; i

{

data[i] = (int *)malloc(col * sizeof(int));

}

get_relationship(data, filename, col);

printf("\nhello");

}

int get_row(char *filename)

{

FILE* stream = fopen(filename, "r");

int i = 0;

while(fgetc(stream) != EOF)

{

if(fgetc(stream) == '\n')

{

i++;

}

}

fclose(stream);

return i;

}

int get_col(char *filename)

{

FILE* stream = fopen(filename, "r");

int i = 0;

int x;

while((x = fgetc(stream)) != '\n')

{

if(x == ',')

{

i++;

}

}

fclose(stream);

return i+1;

}

void get_relationship(int** data, char* filename, int col)

{

FILE* stream = fopen(filename, "r");

char line[2*col+1];

int i = 0;

while (fgets(line, 2*col+1, stream))

{

int j = 0;

char *tok;

char* tmp = strdup(line);

for (tok = strtok(line, ","); tok && *tok; j++, tok = strtok(NULL, ",\n"))

{

data[i][j] = atof(tok);

}

i++;

free(tmp);

}

fclose(stream);

}

linux下c语言读取csv文件,C语言读取csv文件相关推荐

  1. 在linux下一般用scp这个命令来通过ssh传输文件

    在linux下一般用scp这个命令来通过ssh传输文件. 1.从服务器上下载文件 scp username@servername:/path/filename /var/www/local_dir(本 ...

  2. linux 压缩7z文件夹,Linux 下压缩与解压.zip和.rar及.7z文件

    Linux 下压缩与解压.zip和.rar及.7z文件对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压它们: 1)对于.zip linux下提供了zip和unzip程 ...

  3. linux下下载fnl数据,python处理FNL数据的grib文件和nc文件(纬度存储的问题)

    python处理FNL数据的grib文件和nc文件(纬度存储的问题) python处理FNL数据的grib文件和nc文件(纬度存储的问题) 在使用python处理FNL数据时,2007年及之前的数据存 ...

  4. linux下ls -l命令(即ll命令)查看文件的显示结果分析

    在linux下使用"ls -l"或者"ls -al"或者"ll"命令查看文件及目录详情时,shell中会显示出好几列的信息.平时也没怎么注意 ...

  5. linux dd目录生成iso文件,Linux下dd + mkisofs 制作可启动 img/iso 映像文件

    总的来说,制作镜像文件有三种方法,cp, cat, dd 和其它专用工具.cp ,cat 和 dd都可以从设备复制文件来创建镜像.而 dd 命令更为强大,可以通过指定块大小,块多少来直接创建镜像. I ...

  6. linux下使用ffmpeg采集摄像头数据并编码成h264文件

    本文讲述如何在linux下,使用ffmpeg采集视频数据,并编码成h264文件. 打算分成3部分讲解: 需要具备的软硬件环境 ffmpeg命令采集摄像头数据并编码成h264文件 ffmpeg代码采集摄 ...

  7. Linux下rz,sz与ssh的配合使用,实现文件传输

    一般来说,linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用ssh登陆linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上传和下载文件到服务器和本地:    与ss ...

  8. linux下仅仅有rman备份集的异机不同文件夹恢复

    昨天在客户那里做了一次rman异机的恢复,把生产库弄一份给測试库用,总库大概80G,总共花费了2个小时,当时客户的环境是windows 11.2.0.3,今天早晨在linux下又一次測试了一下,记录下 ...

  9. linux下编译ts工程,linux下搭建生成HLS所需的.ts和.m3u8文件

    要想利用HLS来实现视频的在线播放,就得需要将一个完整的视频文件切割成多个ts视频流,然后利用m3u8的索引文件来播放. 在Mac下,苹果提供了streamingTools的工具,里面有mediafi ...

  10. linux解压7z文件,Linux 下压缩与解压.zip和.rar及.7z文件

    对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压它们: 1)对于.zip linux下提供了zip和unzip程序,zip是压缩程序,unzip是解压程序.它们的参数 ...

最新文章

  1. wordpress如何禁用后台控制面板内容
  2. mybatis 配置文件中set丢失逗号
  3. 基于局部均方差相关信息的图像去噪及其在实时磨皮美容算法中的应用。
  4. Python 3.x 引入了函数注释
  5. 小分子蛋白Western blot 检测
  6. java实现rsa欧几里得算法求d_RSA 加密算法的 java 实现
  7. php redis存储位置,redis数据保存在哪里
  8. maven 基本命令
  9. 我只是一个程序代码员吗?
  10. AtCoder Beginner Contest 171 E - Red Scarf
  11. mac 安装 cocoapods
  12. 使用Istio分布式跟踪应用程序
  13. 深入浅出VMware的组网模式
  14. Linux ls按时间排列
  15. 让PPC手机增加自动对时功能
  16. 拼接大屏数据展示_大屏拼接可视化
  17. java最后冲刺2个月校招了(XB的指导)
  18. ?Agilent.GoldenGate.RFIC.Simulation.2015.01.v4.9.0.Win64 1CD(RTL验证标准)
  19. 自己动手写股票数据分析软件之数据获取
  20. 开学季学生宿舍竟然限电,学校管理因噎废食?

热门文章

  1. 1-氨丙基-3-甲基咪唑溴盐离子液体修饰碳量子点(L-CQDs)负载TiO2纳米颗粒(试剂)
  2. 【C#】制作简单的飞行棋小游戏
  3. java分页查询_java实现分页查询
  4. 3D与2D动画哪一个更容易?
  5. 【数学】方差/标准差的各种估计辨析
  6. 高中信息技术知识点归纳总结
  7. google日历免费短信天气提醒
  8. 不解压war包替换文件
  9. date获取时间某年某月一共有多少天以及格式化天数,月份,年
  10. vscode中的网易云插件听歌无声音的解决方法(ubuntu)