欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言實(shí)現(xiàn)解析csv格式文件的示例代碼

 更新時(shí)間:2023年06月04日 15:29:26   作者:whik1194  
CSV,有時(shí)也稱為字符分隔值,其文件以純文本形式存儲(chǔ)表格數(shù)據(jù)(數(shù)字和文本),本文為大家整理了C語言解析csv文件的方法,需要的可以參考一下

csv文件格式

逗號(hào)分隔值(Comma-Separated Values,CSV,有時(shí)也稱為字符分隔值,因?yàn)榉指糇址部梢圆皇嵌禾?hào)),其文件以純文本形式存儲(chǔ)表格數(shù)據(jù)(數(shù)字和文本)。純文本意味著該文件是一個(gè)字符序列,不含必須像二進(jìn)制數(shù)字那樣被解讀的數(shù)據(jù)。

CSV文件由任意數(shù)目的記錄組成,記錄間以某種換行符分隔;每條記錄由字段組成,字段間的分隔符是其它字符或字符串,最常見的是逗號(hào)或制表符。通常,所有記錄都有完全相同的字段序列。通常都是純文本文件。建議使用WORDPAD或是記事本來開啟,再則先另存新檔后用EXCEL開啟,也是方法之一。

csv文件示例

一個(gè)簡(jiǎn)單的csv文件:

csv文件解析

csv文件內(nèi)容:

序號(hào),姓名,性別,年齡,描述
1,張珊,女,29,產(chǎn)品經(jīng)理
2,李思,男,31,架構(gòu)師
3,王偉,男,27,開發(fā)工程師
4,陳亮,男,26,測(cè)試工程師

首先打開文件,按行讀取一行數(shù)據(jù),使用strtok函數(shù)基于逗號(hào)對(duì)一行的數(shù)據(jù)進(jìn)行分割,并存入二維數(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, ",");   //對(duì)讀取的一行數(shù)據(jù)進(jìn)行分割
        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;
}

編譯并運(yùn)行:

line 1:
arr[0]=序號(hào)
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]=測(cè)試工程師

Hello world! 0

到此這篇關(guān)于C語言實(shí)現(xiàn)解析csv格式文件的示例代碼的文章就介紹到這了,更多相關(guān)C語言解析csv文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++類的空指針調(diào)用成員函數(shù)的代碼

    C++類的空指針調(diào)用成員函數(shù)的代碼

    這篇文章主要介紹了C++類的空指針調(diào)用成員函數(shù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • C++容器vector實(shí)現(xiàn)通訊錄功能

    C++容器vector實(shí)現(xiàn)通訊錄功能

    這篇文章主要為大家詳細(xì)介紹了C++容器vector實(shí)現(xiàn)通訊錄功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • 利用C++模擬實(shí)現(xiàn)STL容器:list

    利用C++模擬實(shí)現(xiàn)STL容器:list

    列表是一種順序容器,它允許在序列中的任何位置執(zhí)行常量時(shí)間插入和刪除操作,并允許在兩個(gè)方向上進(jìn)行迭代。本文將利用C++模擬實(shí)現(xiàn)list,希望對(duì)大家有所幫助
    2022-12-12
  • C語言求向量和的兩則問題解答分享

    C語言求向量和的兩則問題解答分享

    這篇文章主要介紹了C語言求向量和的兩則問題解答分享,分別是求連續(xù)子向量的最大和和任何連續(xù)最接近0的子向量的和的問題,需要的朋友可以參考下
    2016-04-04
  • 基于Matlab實(shí)現(xiàn)水波倒影特效的制作

    基于Matlab實(shí)現(xiàn)水波倒影特效的制作

    這篇文章主要介紹了如何利用Matlab制作出水波倒影的特效,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Matlab有一定幫助,需要的可以參考一下
    2022-03-03
  • CMake語法及CMakeList.txt簡(jiǎn)單使用小結(jié)

    CMake語法及CMakeList.txt簡(jiǎn)單使用小結(jié)

    Cmake主要用于開發(fā)跨平臺(tái)的C++項(xiàng)目,本文主要介紹了CMake語法及CMakeList.txt簡(jiǎn)單使用小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2022-05-05
  • C++實(shí)現(xiàn)簡(jiǎn)單的圖書管理系統(tǒng)

    C++實(shí)現(xiàn)簡(jiǎn)單的圖書管理系統(tǒng)

    本文給大家分享的是使用C++實(shí)現(xiàn)簡(jiǎn)單的圖書管理系統(tǒng)的代碼,本系統(tǒng)采用了面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2015-08-08
  • C++ 賦值構(gòu)造函數(shù)注意點(diǎn)介紹

    C++ 賦值構(gòu)造函數(shù)注意點(diǎn)介紹

    下面小編就為大家?guī)硪黄狢++ 賦值構(gòu)造函數(shù)注意點(diǎn)介紹。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12
  • 淺談c語言中轉(zhuǎn)義字符的用法及注意事項(xiàng)

    淺談c語言中轉(zhuǎn)義字符的用法及注意事項(xiàng)

    下面小編就為大家?guī)硪黄獪\談c語言中轉(zhuǎn)義字符的用法及注意事項(xiàng)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-08-08
  • Qt線程QThread開啟和安全退出的實(shí)現(xiàn)

    Qt線程QThread開啟和安全退出的實(shí)現(xiàn)

    本文主要介紹了Qt線程QThread開啟和安全退出的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06

最新評(píng)論