linux下c语言读取csv文件,C语言读取csv文件
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文件相关推荐
- 在linux下一般用scp这个命令来通过ssh传输文件
在linux下一般用scp这个命令来通过ssh传输文件. 1.从服务器上下载文件 scp username@servername:/path/filename /var/www/local_dir(本 ...
- linux 压缩7z文件夹,Linux 下压缩与解压.zip和.rar及.7z文件
Linux 下压缩与解压.zip和.rar及.7z文件对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压它们: 1)对于.zip linux下提供了zip和unzip程 ...
- linux下下载fnl数据,python处理FNL数据的grib文件和nc文件(纬度存储的问题)
python处理FNL数据的grib文件和nc文件(纬度存储的问题) python处理FNL数据的grib文件和nc文件(纬度存储的问题) 在使用python处理FNL数据时,2007年及之前的数据存 ...
- linux下ls -l命令(即ll命令)查看文件的显示结果分析
在linux下使用"ls -l"或者"ls -al"或者"ll"命令查看文件及目录详情时,shell中会显示出好几列的信息.平时也没怎么注意 ...
- linux dd目录生成iso文件,Linux下dd + mkisofs 制作可启动 img/iso 映像文件
总的来说,制作镜像文件有三种方法,cp, cat, dd 和其它专用工具.cp ,cat 和 dd都可以从设备复制文件来创建镜像.而 dd 命令更为强大,可以通过指定块大小,块多少来直接创建镜像. I ...
- linux下使用ffmpeg采集摄像头数据并编码成h264文件
本文讲述如何在linux下,使用ffmpeg采集视频数据,并编码成h264文件. 打算分成3部分讲解: 需要具备的软硬件环境 ffmpeg命令采集摄像头数据并编码成h264文件 ffmpeg代码采集摄 ...
- Linux下rz,sz与ssh的配合使用,实现文件传输
一般来说,linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用ssh登陆linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上传和下载文件到服务器和本地: 与ss ...
- linux下仅仅有rman备份集的异机不同文件夹恢复
昨天在客户那里做了一次rman异机的恢复,把生产库弄一份给測试库用,总库大概80G,总共花费了2个小时,当时客户的环境是windows 11.2.0.3,今天早晨在linux下又一次測试了一下,记录下 ...
- linux下编译ts工程,linux下搭建生成HLS所需的.ts和.m3u8文件
要想利用HLS来实现视频的在线播放,就得需要将一个完整的视频文件切割成多个ts视频流,然后利用m3u8的索引文件来播放. 在Mac下,苹果提供了streamingTools的工具,里面有mediafi ...
- linux解压7z文件,Linux 下压缩与解压.zip和.rar及.7z文件
对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压它们: 1)对于.zip linux下提供了zip和unzip程序,zip是压缩程序,unzip是解压程序.它们的参数 ...
最新文章
- linux下的C语言开发 GDB的例子
- Invalid byte tag in constant pool: 19 与 javax/el/ELManager问题解决
- 简约之美Jodd-http--应用一箩筐
- SQLServer之创建数据库架构
- java代码里的JSON格式怎么写好看_谁会不爱让代码骚里骚气的VSCode扩展插件呢?...
- django——会话追踪技术
- userdel account is currently in use
- xcode常用快捷键_Mac及Xcode常用快捷键
- 收到一个机器人txt微盘_经阁-第一章 吞了个机器人-爱阅小说网
- oracle 重启后 检查,oracle常规检查有哪些,oracle RAC中的一个节点经常重启?
- OpenCV_cv::Mat的深拷贝 浅拷贝问题
- 基于Java毕业设计智能旅游电子票务系统演示录像2020源码+系统+mysql+lw文档+部署软件
- SVN 提示svn-base: 系统找不到指定的文件
- 阿里如何实现海量数据实时分析?
- phpadmin的安装教程
- 利用flex布局实现六个骰子
- 广东电网携手华为,为“数字电网”建设提供有力支撑
- 我知道眼泪多余,笑变得好不容易
- 移动端接入游戏渠道自动化解决方案
- 秒杀抢购活动性能测试记录