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. linux下的C语言开发 GDB的例子
  2. Invalid byte tag in constant pool: 19 与 javax/el/ELManager问题解决
  3. 简约之美Jodd-http--应用一箩筐
  4. SQLServer之创建数据库架构
  5. java代码里的JSON格式怎么写好看_谁会不爱让代码骚里骚气的VSCode扩展插件呢?...
  6. django——会话追踪技术
  7. userdel account is currently in use
  8. xcode常用快捷键_Mac及Xcode常用快捷键
  9. 收到一个机器人txt微盘_经阁-第一章 吞了个机器人-爱阅小说网
  10. oracle 重启后 检查,oracle常规检查有哪些,oracle RAC中的一个节点经常重启?
  11. OpenCV_cv::Mat的深拷贝 浅拷贝问题
  12. 基于Java毕业设计智能旅游电子票务系统演示录像2020源码+系统+mysql+lw文档+部署软件
  13. SVN 提示svn-base: 系统找不到指定的文件
  14. 阿里如何实现海量数据实时分析?
  15. phpadmin的安装教程
  16. 利用flex布局实现六个骰子
  17. 广东电网携手华为,为“数字电网”建设提供有力支撑
  18. 我知道眼泪多余,笑变得好不容易
  19. 移动端接入游戏渠道自动化解决方案
  20. 秒杀抢购活动性能测试记录

热门文章

  1. 手动从注册表中删除服务项
  2. jdk的安装和环境变量的配置
  3. MFC中worksheets.add 将新建sheet加在某sheet后的方法
  4. 使用USB转ttl给stm32下载程序
  5. UISearchController自动弹出键盘,调用becomeFirstResponder变为第一响应事件,和resignFirstResponder
  6. 大学计算机学习计划书,大学学习计划书500字
  7. 机器学习常用评估指标的前世今生
  8. Python教程(十)
  9. m基于FPGA的积分梳状CIC滤波器verilog设计
  10. MIPS汇编语言指令类型