document.write('
')

澳门新莆京在线登录

创作

完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>

3天内不再提示

c语言读写表格(csv)文件 读取csv文件示例

嵌入式技术 来源:嵌入式技术 作者:嵌入式技术 2022-06-08 09:22 次阅读

1. csv文件简介

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

2.csv文件信息

 1.通过excel打开文件

pYYBAGKXCjiABj36AABhslI-QOw111.png#pic_center

 2.通过Notepad++打开或记事本打开

poYBAGKXCWyAPXV5AADMKzKuelc236.png

3.读取csv文件示例

#include 
#include 
#include 
#include 
#include 
/*
"ID","人脸库","创建时间","用户组ID","修改时间","用户ID","修改时间","人脸url"
"25497897","人脸识别","2022-01-11 16:09:21","wbyq","2022-01-13 11:02:50","18679314703","2022-01-13 11:00:52","http://console.bce.baidu.com/ai/s/facelib/face?appId=3028051&groupId=wbyq&uid=18679514703&faceId=070f81ef00383d7c376aac1c38b73090"
"25497897","人脸识别","2022-01-11 16:09:21","wbyq","2022-01-13 11:02:50","18659514703","2022-01-13 11:00:52","http://console.bce.baidu.com/ai/s/facelib/face?appId=3028051&groupId=wbyq&uid=18679514703&faceId=f83fc8ca898f4d4a2a17ef4dc341187e"
"25497897","人脸识别","2022-01-11 16:09:21","wbyq","2022-01-13 11:02:50","18679514703","2022-01-13 11:00:52","http://console.bce.baidu.com/ai/s/facelib/face?appId=3028051&groupId=wbyq&uid=18679514703&faceId=65041fdb1f58fbd6c3b983045b8f840a"
"25497897","人脸识别","2022-01-11 16:09:21","wbyq","2022-01-13 11:02:50","18679214703","2022-01-13 11:00:52","http://console.bce.baidu.com/ai/s/facelib/face?appId=3028051&groupId=wbyq&uid=18679514703&faceId=39555691bf84a277bee85a2f1cd09e68"
"25497897","人脸识别","2022-01-11 16:09:21","wbyq","2022-01-13 11:02:50","18671514703","2022-01-13 11:00:52","http://console.bce.baidu.com/ai/s/facelib/face?appId=3028051&groupId=wbyq&uid=18679514703&faceId=0ff8d148721ae720c5815934929e77b3"
"25497897","人脸识别","2022-01-11 16:09:21","wbyq","2022-01-13 11:02:50","18679513703","2022-01-13 11:00:52","http://console.bce.baidu.com/ai/s/facelib/face?appId=3028051&groupId=wbyq&uid=18679514703&faceId=aebc792d6c5fec000be59a934dfd28c3"
*/
int refile_csv(char *filename)
{
	char c;
	FILE *fp = fopen(filename,"rb");
	int file_line=1,file_row=0;
	fseek(fp,0,SEEK_END);
	long flen = ftell(fp);
	printf("len = %ld\n",flen);
	fseek(fp,0,SEEK_SET);
	int fd=fileno(fp);//文件指针转文件描述符	
	(fd==-1)
	{
		printf("转换失败\n");
		return -1;
	}	
	char *file_addr=mmap(NULL,flen,PROT_READ,MAP_SHARED,fd,0);//内存映射
	fclose(fp);
	close(fd);	
	if(file_addr==NULL)
	{
		printf("映射失败\n");
		return -2;
	}
	/*统计行*/
	char *p=file_addr;
	p=strstr(file_addr,""");
	while(*p)
	{
		if(*p=='\n')
		{
			p=strstr(p,""");
			if(p==NULL)break;
			file_line++;
		}
		else p++;
	}
	printf("行:%d\n",file_line);//统计行
	//"APPID","人脸库","创建时间","用户组ID","修改时间","用户ID","修改时间","人脸url"
	/*统计列*/
	int cnt=0;
	p=file_addr;
	p=strstr(file_addr,""");
	p++;
	while(*p && *p!='\n')
	{
		while(*p!='"' && *p)p++;
		p++;
		cnt++;
		if(*p=='\n')break;
		else if(*p==',')p+=2;
	}
	printf("列:%d\n",cnt);
	/*将.csv文件数据保存到数组中*/
	char buff[file_line][cnt][500];
	int i,j;
	p=strstr(file_addr,""");
	p++;
	for(i=0;i

运行结果:

poYBAGKXCb-AQsGKAAHNPg1HkNM541.png

4.修改CSV文件

/*
函数功能:修改csv文件
形参:filename --文件名
      line  --要修改的行(从1开始)
	  row   --要修改的列(从1开始)
	  data  --修改的内容
返回值:成功返回0,失败返回负数
*/
int modifyfile_csv(char *filename,int line,int row,char *data)
{
	char c;
	FILE *fp = fopen(filename,"rb");
	int file_line=1,file_row=0;
	fseek(fp,0,SEEK_END);
	long flen = ftell(fp);
	printf("len = %ld\n",flen);
	fseek(fp,0,SEEK_SET);
	int fd=fileno(fp);//文件指针转文件描述符	
	if(fd==-1)
	{
		printf("转换失败\n");
		return -1;
	}	
	char *file_addr=mmap(NULL,flen,PROT_READ,MAP_SHARED,fd,0);//内存映射
	fclose(fp);
	close(fd);	
	if(file_addr==NULL)
	{
		printf("映射失败\n");
		return -2;
	}
	/*统计行*/
	char *p=file_addr;
	p=strstr(file_addr,""");
	
	while(*p)
	{
		if(*p=='\n')
		{
			p=strstr(p,""");
			if(p==NULL)break;
			file_line++;
		}
		else p++;
	}
	printf("行:%d\n",file_line);//统计行
	
	//"APPID","人脸库","创建时间","用户组ID","修改时间","用户ID","修改时间","人脸url"
	/*统计列*/
	int cnt=0;
	p=file_addr;
	p=strstr(file_addr,""");
	p++;
	while(*p && *p!='\n')
	{
		while(*p!='"' && *p)p++;
		p++;
		cnt++;
		if(*p=='\n')break;
		else if(*p==',')p+=2;
	}
	printf("列:%d\n",cnt);
	/*将.csv文件数据保存到数组中*/
	char buff[file_line][cnt][500];
	int i,j;
	p=strstr(file_addr,""");
	p++;
	for(i=0;ifile_line || row>cnt)
	{
		printf("未找到要修改的位置\n");
		return 0;
	}
	char src_data[500];
	if(row==cnt)
	{
		snprintf(src_data,sizeof(src_data),""%s"\n",data);
	}
	else snprintf(src_data,sizeof(src_data),""%s",",data);
	strcpy(buff2[line-1][row-1],src_data);
	int size;
	for(i=0;i

运行结果:

poYBAGKXCf6AXEkvAAK5NlbiOLs900.png

收藏 人收藏

    评论

    相关推荐

    Streamly具有C语言性能的Idiomatic Haskell

    ./oschina_soft/streamly.zip
    发表于 06-13 11:23 6次 阅读
    Streamly具有C语言性能的Idiomatic Haskell

    嵌入式软件常见笔试面试题汇总

    1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
    的头像 lucky的记录与分享 发表于 06-13 07:54 60次 阅读

    基于51单片机的OLED显示图片文字

    基于51单片机的OLED屏幕显示,可显示图片文字字母等。
    发表于 06-12 00:43 623次 阅读

    如何提升C编程能力

    GNU C:GNU的C函数库,其实就是glibc,它是Linux上最重要的函数库,它定义了 ANSI....
    的头像 FPGA之家 发表于 06-09 10:24 141次 阅读

    学习已经近两个月了,不能说所教知识都掌握得非常好,但至少还是能跟着老师步伐、理解关键知识点、正确完成作业的。现在还没真正...
    发表于 06-07 14:48 215次 阅读

    Chafa命令行图像转换器和查看器

    ./oschina_soft/chafa.zip
    发表于 06-07 14:34 10次 阅读
    Chafa命令行图像转换器和查看器

    Zauonlok Renderer基于C语言的软件渲染器

    ./oschina_soft/renderer.zip
    发表于 06-07 14:29 10次 阅读
    Zauonlok Renderer基于C语言的软件渲染器

    整型的signed和unsigned详解 double的二进制位显示

    C语言各种数据类型的内存映像(32位平台)
    的头像 一口Linux 发表于 06-06 17:01 249次 阅读

    详细普中51单片机开发功略

    到目前为止,在电子界,如果想进入微控制器领域的学习,相信绝大多数的 人会认为要从 51 单片机开始....
    发表于 06-06 14:32 24次 阅读

    AWStudio社区版重大升级 支持高中低端全平台运行

    今天我们迎来了AWStudio社区版的重大升级。AWStudio v1.1支持从云端获取自定义控件、....
    的头像 科技绿洲 发表于 06-06 11:55 217次 阅读

    怎么使用C语言控制硬件

    C语言的应用编程在单片机的领域占了很大一部分,使用的比较多的51单片机和STM32单片机都可以使用M....
    的头像 要长高 发表于 06-04 17:31 210次 阅读

    C编译成机器码要通过预处理,编译,汇编,链接四个步骤。这四个步骤由谁做的呢?答案是编译器。 编译器做的工作类似我们IC行...
    发表于 06-01 16:53 2659次 阅读

    zimg图像存储和处理系统

    ./oschina_soft/zimg.zip
    发表于 05-31 10:26 12次 阅读
    zimg图像存储和处理系统

    安装gcc环境 测试用的unbutu平台,直接在开发板上面运行,如果在虚拟机上面运行的话又要弄交叉编译,太麻烦;直接在开发板上面联...
    发表于 05-30 10:43 1511次 阅读

    安装gcc环境 测试用的unbutu平台,直接在开发板上面运行,如果在虚拟机上面运行的话又要弄交叉编译,太麻烦;直接在开发板上面联...
    发表于 05-30 10:41 1539次 阅读

    Lilliput Discord开源的图像调整工具

    ./oschina_soft/lilliput.zip
    发表于 05-30 09:49 9次 阅读
    Lilliput Discord开源的图像调整工具

    发表于 05-29 22:35 3954次 阅读

    ARM 程序设计 由于 C 语言便于理解,有大量的支持库,所以它是当前 ARM 程序设计所使用的主要编程语言 对硬件系统的初始...
    发表于 05-27 17:37 3900次 阅读

    ATPCS基本规则

    有调用关系的所有子程序必须遵守同一种ATPCS,编译器或者汇编器在ELF格式的目标文件中设置相应的属....
    的头像 安芯教育科技 发表于 05-27 10:12 169次 阅读

    JWebFileTrans(JDownload)从网络上下载文件的程序

    ./oschina_soft/JDownload.zip
    发表于 05-27 09:10 16次 阅读
    JWebFileTrans(JDownload)从网络上下载文件的程序

    详解回调函数的概念及使用步骤

    回调函数就是一个被作为参数传递的函数。在C语言中,回调函数只能使用函数指针实现,在C++、Pytho....
    的头像 嵌入式应用开发 发表于 05-26 15:20 312次 阅读

    我的系统在测试并将数据文件保存到 SD 卡中,但是当 sd 卡在电脑端读取出来的修改时间为什么是统一的 2098/1/1 0:00呢。 图;是...
    发表于 05-26 15:03 1383次 阅读

    uncsv CSV文件过滤

    ./oschina_soft/uncsv.zip
    发表于 05-25 10:23 5次 阅读
    uncsv CSV文件过滤

    Vitis HLS工具简介及设计流程

    Vitis HLS 是一种高层次综合工具,支持将 C、C++ 和 OpenCL 函数硬连线到器件逻辑....
    的头像 Xilinx赛灵思官微 发表于 05-25 09:43 432次 阅读

    C语言基础知识分享

    常见问题答疑 1. 学习 java为什么建议先学 语言 没学过计算机专业课程能够学懂 语言 英....
    发表于 05-23 16:07 33次 阅读

    基于non-OS和RT-Thread的按键库源码及应用

    核心的按键扫描代码仅有三行,没错,就是经典的 三行按键扫描算法。使用 C 语言标准库 API 编写,....
    的头像 硬件攻城狮 发表于 05-23 09:39 409次 阅读

    C语言_二维数组与一维指针

    字符串:本身属于字符数组、字符串结尾有’\0’。
    的头像 DS小龙哥-嵌入式技术 发表于 05-21 09:11 470次 阅读

    详解内存池技术的原理与实现

    最近在网上看到了几篇篇讲述内存池技术的文章,有一篇是有IBM中国研发中心的人写的,写的不错~~文章地....
    发表于 05-20 08:58 3675次 阅读

    微控制器中各式各样的编程语言

    在上一篇文章中,我们探索了微控制器中的软件与硬件,并分析了为何微控制器的软件和硬件相辅相成缺一不可。....
    的头像 东芝半导体 发表于 05-19 19:58 760次 阅读

    C语言—数组详解

    介绍C语言数组的知识点。
    的头像 DS小龙哥-嵌入式技术 发表于 05-19 10:15 3736次 阅读

    关于CAS等原子操作介绍 无锁队列的链表实现方法

    在开始说无锁队列之前,我们需要知道一个很重要的技术就是CAS操作——Compare & Set,或是....
    发表于 05-18 09:12 282次 阅读

    编程案例 使用MPLAB®X开发AVR®MCU 写C程序框架

    从新建一个空白程序开始,从头写一个程序框架,能有助于更好的理解MPLAB® X开发环境所提供的各种编....
    的头像 物联网评论 发表于 05-17 11:24 2285次 阅读

    用C语言写出简单的加密算法

    有一套四位数加密系统,输入四位数以后会自动加密。加密规则如下:每位数字都加上 5,然后用和除以 10....
    的头像 FPGA之家 发表于 05-16 10:20 291次 阅读

    用FPGA解一道初中数学题

    由平方和4361末尾为1,再根据整数平方和的几种可能,计算出仅有0+1和5+6这两种可能,而且平方之....
    的头像 嵌入式ARM 发表于 05-13 14:41 251次 阅读

    C语言与C++面试知识点总结

    相对而言,C语言和C++相关的面试题比较少见,没有Java方向写的人那么多,这是一篇 C 语言与 C....
    的头像 安芯教育科技 发表于 05-13 11:59 507次 阅读

    POFSwitch虚拟交换机

    ./oschina_soft/POFSwitch.zip
    发表于 05-13 11:03 27次 阅读
    POFSwitch虚拟交换机

    如何学好C语言呢,下面总结了几个点:1:首先就是C语言的编辑软件,其实有很多,有什么vim等,可以看自己的情况来选择。这边可以...
    发表于 05-12 15:32 1339次 阅读

    C语言与C++面试知识点总结

    相对而言,C语言和C++相关的面试题比较少见,没有Java方向写的人那么多,这是一篇 C 语言与 C....
    的头像 嵌入式ARM 发表于 05-12 14:59 371次 阅读

    就算你是高手你也会犯的Bug

    但是这个程序,只能在Unix/Linux下工作,因为 Microsoft 的tmpfile()的实现....
    的头像 硬件攻城狮 发表于 05-12 09:46 170次 阅读

    51单片机简单易学教材(C语言版)

    本书旨在培养和锻炼单片机系统实用开发技能,全书以实践为主线,让读者在一个个实践案例中 逐步掌握单片....
    发表于 05-10 17:37 141次 阅读

    C和C++的经典教材

    经典著作《Pointers on C》中文名《C和指针》,适合C语言有一定基础或初学者学习
    发表于 05-10 15:06 60次 阅读

    关于C语言陷阱与缺陷

    经典C语言著作,适合C语言初学者学习
    发表于 05-10 15:04 30次 阅读

    关于C语言大坑你知道嘛?

    为了不让别人篡改鱼鹰的代码,鱼鹰设计了多套机制,其中一个就是定时检查关键代码是否已执行,如果有一次没....
    的头像 嵌入式ARM 发表于 05-10 14:43 180次 阅读

    SZ/SNZ/LSZ/LSNZ指令功能及注意事项

    SZ [m] / SNZ [m] / LSZ [m] / LSNZ [m] 属于转移类型指令,其功能....
    发表于 05-10 14:40 40次 阅读
    SZ/SNZ/LSZ/LSNZ指令功能及注意事项

    cocker C语言实现的容器引擎

    ./oschina_soft/gitee-cocker.zip
    发表于 05-10 09:54 34次 阅读
    cocker C语言实现的容器引擎

    一、摘要算法摘要算法又称哈希算法。它表示输入任意长度的数据,输出固定长度的数据,它的主要特征是加密过程不需要密钥,并且经...
    发表于 05-10 09:15 836次 阅读

    如何编写优质嵌入式C程序

    本文面向的,正是使用单片机、ARM7、Cortex-M3这类微控制器的编程人员。
    的头像 STM32嵌入式开发 发表于 05-09 12:05 283次 阅读

    Keil C51-μVision4的使用

    Keil C51 µVision4 是美国 Keil Software 公司出品的 51 系列兼容单....
    发表于 05-09 11:22 38次 阅读

    wickr-crypto-c Wickr安全加密库

    ./oschina_soft/wickr-crypto-c.zip
    发表于 05-09 10:38 28次 阅读
    wickr-crypto-c Wickr安全加密库

    共466页,版面很清晰,非常好的资料。有需要的可下载 ...
    发表于 05-07 10:15 11146次 阅读

    CPrimer Plus(第六版)中文版之C语言经典书籍

    CPrimer Plus(第六版)中文版之C语言经典书籍资料分享。
    发表于 05-06 17:10 99次 阅读

    “C不再是一种编程语言”

    比喻虽尖锐,依据却不无道理。几乎任何程序要做任何有用或有趣的事情,它都必须在操作系统上运行。这意味着....
    的头像 硬件攻城狮 发表于 05-05 14:43 198次 阅读

    嵌入式开发软件中回调函数的使用

    在嵌入式开发软件中回调函数是经常接触的一种软件设计方法,像我们的事件处理机制基本上都会使用到回调函数....
    的头像 strongerHuang 发表于 04-29 08:57 660次 阅读

    C语言里函数的定义、子函数的使用及变量的作用域

    这篇介绍C语言里函数的定义、子函数的使用。接着介绍变量的作用域,定义全局变量、静态变量、只读变量、变....
    的头像 C语言编程学习基地 发表于 04-28 11:23 677次 阅读

    如何设计一块属于自己的单片机开发板

    简易单片机开发板的设计,以及全版测试程序的开发及调试,开发板的设计的缘由,是因为班的学生,要做单片机....
    发表于 04-27 17:31 380次 阅读

    基本语句编程的一些规则和建议

    初学者阶段编程时,编写基本语句可能会有隐含错误的方式,基本语句主要针对if、for、while、go....
    的头像 硬件攻城狮 发表于 04-27 12:53 274次 阅读

    彩色的LED灯是如何做出来的,LED的本质和发光原理的介绍

    LED的全称是Light Emitting Diode,意思是发光二极管,所以本质上LED也属于二极....
    发表于 04-26 16:52 1450次 阅读

    c语言枚举end是做什么用的?

    但是这个结果并不是唯一的,它取决于你的编译器,另外还取决于编译器参数,gcc这里有个编译器参数 -f....
    的头像 硬件攻城狮 发表于 04-26 15:36 177次 阅读

    按键库源码及应用

    核心的按键扫描代码仅有三行,没错,就是经典的 三行按键扫描算法。使用 C 语言标准库 API 编写,....
    的头像 硬件攻城狮 发表于 04-26 15:19 265次 阅读

    Httpry HTTP流量记录工具

    httpry.zip
    发表于 04-26 09:53 31次 阅读
    Httpry HTTP流量记录工具

    嵌入式技术

    文章:51 被阅读:80988

    关注 8人关注
    必威体育官网下载 365bet下载地址苹果版 永利app下载 必威体育注册 必威体育betway登录手机 365bet客户端下载 金沙彩票app 必威苹果客户端下载 必威体育app手机版 金沙彩票手机版下载 新澳门葡京网站多少 必威体育betway登录手机 必威体育app官方版下载 必威体育app官方版下载 必威betway中文版 澳门新莆京在线登录 必威体育betway登录手机 必威体育官网下载 澳门威尼斯人网上娱乐 必威登录网页版登录注册 必威体育app手机版 必威体育appios下载 金沙彩票app下载安装 365bet官方下载苹果版 365bet下载地址苹果版 澳门新莆京在线登录 Betway必威中文官网 365betapp苹果版下载 Betway必威中文官网 必威体育app官方版下载