用c语言来打开csv格式内容怎么做

用c语言来打开csv格式内容怎么做,第1张

csv是逗号分隔的, 其它的 都等同于纯文本

所以 简单的csv文件, 只需要按照文本方式打开

然后以逗号为分隔符 读取每个域的内容就可以了。

可以根据内容约定, 存储成数组或者结构体

使用StreamReader打开文件,利用ReadLine方法可以一行一行的读取CSV文件内容,使用ReadToEnd方法可以一次读取全部CSV文件内容,你可以一行一行的读取出字符串,然后使用Split方法把内容根据“,”分割成数组,代码如下:\x0d\x0aStreamReader reader = new StreamReader("文件完整路径或相对路径,包含文件名")\x0d\x0astring line = ""\x0d\x0aList listStrArr = new List()//数组List,相当于可以无限扩大的二维数组。\x0d\x0aline = reader.ReadLine()//读取一行数据\x0d\x0awhile(line != null)\x0d\x0a{\x0d\x0alistStrArr.Add(line.Split(","))//将文件内容分割成数组\x0d\x0a\x0d\x0aline = reader.ReadLine()\x0d\x0a\x0d\x0a}

假定数据存放在 a.csv 中,每行 列数 都是 4 列,行尾 有 换行 符。行数不定,读到 EOF 为止。

按目前例子来看,它们是16 进制 正整数,逗号分隔,所以用有格式读:

fscanf(fp,"%x,%x,%x,%x",&x[n][0],&x[n][1],&x[n][2],&x[n][3])

便可。完整的 c++程序如下。

#include<iostream>

#include<fstream>

#include <string>

using namespace std

#include <stdio.h>

main(){

int x[100][4]

int j,i,n=0

FILE *fp

fp=fopen("a.csv","r")

while(1){

fscanf(fp,"%x,%x,%x,%x",&x[n][0],&x[n][1],&x[n][2],&x[n][3])

if (feof(fp))break

n++

}

fclose(fp)

printf("n=%d\n",n)

for (j=0j<nj++){

for (i=0i<4i++) printf("%x ",x[j][i])

printf("\n")

}

return 0

}

输出:

n=3

a b c d

1 2 3 4

7 4 3 1


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12076444.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存