#C#C语言读取csv文件

  c语言读取csv表格数据 

    工作生活中我们时常把数据存储在exel表格中,如要对数据进行处理我们就需要将数据读取出来,接下来将介绍一个简单的读取csv文件格式的c语言代码。

     这是一份简单的csv文件,存储着学生成绩信息接下来我们以实例为参考,读取该csv中学生的姓名和学生成绩。


       我们需要的信息是从第二行开始的,所以我们需要掠过第一行从第二行开始读取数据,这时候需要用到一个函数fseek,fseek函数是定义在stdio.h里的一个函数。fseek(FILE *stream, long offset, int fromwhere);此处fseek

传入的参数为需要读取的文件,偏移量,从何处开始。


起始点对应的数字代表的文件位置
SEEK_SET0文件开头
SEEK_CUR1文件当前位置
SEEK_END2文件末尾 

CSV是 Comma-separated values (逗号分隔值)的首字母缩写,它通常是以逗号且不仅限于逗号分隔各个
值, 我们都叫他CSV。例如上面的csv表格用notepad打开后里面实际是长这样的,数据与数据之间用,隔开。
       知道以上知识我们就可以对csv文件进行操作:
FILE *fp = NULL;
	char *line,*record;
	char buffer[1024];
	if ((fp = fopen("Student.csv", "at+")) != NULL)
	{
		fseek(fp, 170L, SEEK_SET);  //定位到第二行,每个英文字符大小为1
		char delims[] = ",";
		char *result = NULL;
		int j = 0;
		while ((line = fgets(buffer, sizeof(buffer), fp))!=NULL)//当没有读取到文件末尾时循环继续
		{
			record = strtok(line, ",");
			while (record != NULL)//读取每一行的数据
			{
				if (strcmp(record, "Ps:") == 0)//当读取到Ps那一行时,不再继续读取
					return 0;
				printf("%s ", record);//将读取到的每一个数据打印出来
				if (j == 10)  //只需读取前9列
					break;
				record = strtok(NULL, ",");
				j++;
			}
			printf("\n");
			j = 0;
 
		}
		fclose(fp);
		fp = NULL;
	}

程序运行成功,控制台顺利打印出来了我们所需要的数据。如果想要将数据存储在数组中只要在代码相应的位置

加 上 赋 值代码,当然不要忘记csv读取出来的数据 都是字符串格式的,我们需要对其进行格式的转换



  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值