C語言實現(xiàn)解析csv格式文件的示例代碼
csv文件格式
逗號分隔值(Comma-Separated Values,CSV,有時也稱為字符分隔值,因為分隔字符也可以不是逗號),其文件以純文本形式存儲表格數(shù)據(jù)(數(shù)字和文本)。純文本意味著該文件是一個字符序列,不含必須像二進制數(shù)字那樣被解讀的數(shù)據(jù)。
CSV文件由任意數(shù)目的記錄組成,記錄間以某種換行符分隔;每條記錄由字段組成,字段間的分隔符是其它字符或字符串,最常見的是逗號或制表符。通常,所有記錄都有完全相同的字段序列。通常都是純文本文件。建議使用WORDPAD或是記事本來開啟,再則先另存新檔后用EXCEL開啟,也是方法之一。
csv文件示例
一個簡單的csv文件:

csv文件解析
csv文件內(nèi)容:
序號,姓名,性別,年齡,描述
1,張珊,女,29,產(chǎn)品經(jīng)理
2,李思,男,31,架構(gòu)師
3,王偉,男,27,開發(fā)工程師
4,陳亮,男,26,測試工程師
首先打開文件,按行讀取一行數(shù)據(jù),使用strtok函數(shù)基于逗號對一行的數(shù)據(jù)進行分割,并存入二維數(shù)組中。
#include <stdio.h>
#include <stdlib.h>
#include "stdint.h"
#include "string.h"
#define PATH_CSV "./test.csv"
int parse_csv(uint8_t *path);
int main()
{
int ret = 0;
ret = parse_csv(PATH_CSV);
printf("Hello world! %d\n", ret);
system("pause");
return 0;
}
int parse_csv(uint8_t *path)
{
FILE *fp = fopen(path, "rw");
uint8_t buf[200];
char *token = NULL;
char arr[5][100];
int line = 0;
int i = 0;
int idx = 0;
if(fp == NULL)
{
printf("file open failed: %s\n", path);
return -1;
}
while(fgets(buf, sizeof(buf)/sizeof(buf[0]), fp) != NULL) //每次讀取一行,最多讀取200字節(jié)
{
token = strtok(buf, ","); //對讀取的一行數(shù)據(jù)進行分割
while(token != NULL) //依次取出分割后的內(nèi)容
{
strcpy(arr[idx], token);
idx++;
token = strtok(NULL, ",");
}
line++;
printf("line %d: \n", line);
for(i = 0; i < idx; i++)
{
printf("arr[%d]=%s\n", i, arr[i]);
}
idx = 0;
memset(buf, 0, sizeof(buf)/sizeof(buf[0]));
}
fclose(fp);
return 0;
}編譯并運行:
line 1:
arr[0]=序號
arr[1]=姓名
arr[2]=性別
arr[3]=年齡
arr[4]=描述
line 2:
arr[0]=1
arr[1]=張珊
arr[2]=女
arr[3]=29
arr[4]=產(chǎn)品經(jīng)理
line 3:
arr[0]=2
arr[1]=李思
arr[2]=男
arr[3]=31
arr[4]=架構(gòu)師
line 4:
arr[0]=3
arr[1]=王偉
arr[2]=男
arr[3]=27
arr[4]=開發(fā)工程師
line 5:
arr[0]=4
arr[1]=陳亮
arr[2]=男
arr[3]=26
arr[4]=測試工程師
Hello world! 0
到此這篇關(guān)于C語言實現(xiàn)解析csv格式文件的示例代碼的文章就介紹到這了,更多相關(guān)C語言解析csv文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言 pthread_create() 函數(shù)講解
這篇文章主要介紹了C語言 pthread_create() 函數(shù)講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-08-08
C語言實現(xiàn)在windows服務(wù)中新建進程的方法
這篇文章主要介紹了C語言實現(xiàn)在windows服務(wù)中新建進程的方法,涉及C語言進程操作的相關(guān)技巧,需要的朋友可以參考下2015-06-06

