HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運(yùn)營
CASE 服務(wù)案例
NEWS 熱點(diǎn)資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    c++讀取csv(c讀取csv文件)

    發(fā)布時(shí)間:2023-03-13 04:03:51     稿源: 創(chuàng)意嶺    閱讀: 76        問大家

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于c++讀取csv的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    ChatGPT國內(nèi)免費(fèi)在線使用,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com

    本文目錄:

    c++讀取csv(c讀取csv文件)

    一、用c語言讀取csv文件中的一列數(shù)據(jù)并求這些數(shù)據(jù)的平均值

    #include <stdio.h>

    void main()

    {

    int i,n=0;

    float x[1000],val;

    FILE *fp;

    if((fp=fopen("test.csv","rt"))==NULL)

    {

    printf("cannot open file\n");

    return;

    }

    while (1)

    {

    if(fscanf(fp,"%f,", &val) == EOF) break;

    x[n]=val;

    n++;

    }

    fclose(fp);

    val=0;

    for(i=0;i<n;i++)

    val+=x[i];

    if(n>0) val=val/n;

    printf("%g\n",val);

    }

    二、vs2010 c程序讀取csv文件

    csv是按逗號分隔的

    如果確定有且只有兩列

    那么循環(huán)用

    fscanf(fp, "%f,%f", &a[i], &b[i]);

    即可

    其中fp為打開的文件指針 a b是你的目標(biāo)數(shù)組

    i為讀入的下標(biāo)

    判斷fscanf返回值 或者讀后判斷feof可以確定終止條件

    三、c# 讀取csv文件 內(nèi)容含逗號

    #region 讀Csv,靜態(tài)方法

    /// <summary>

    /// 靜態(tài)方法,讀取規(guī)則的2維表的Csv成DataSet

    /// </summary>

    /// <param name="fileFullPath">全路徑,包括文件名</param>

    /// <returns>DataSet</returns>

    public static DataTable Csv2DataSet(string fileFullPath)

    {

        int intColCount = 0;

        bool blnFlag = true;

        DataTable mydt = new DataTable("myTableName");

        DataColumn mydc;

        DataRow mydr;

        string strpath = fileFullPath; //cvs文件路徑

        string strline;

        string[] aryline;

        System.IO.StreamReader mysr = new System.IO.StreamReader(strpath, Encoding.Default);

        while ((strline = mysr.ReadLine()) != null)

        {

            List<string> ss = new List<string>();

            aryline = strline.Split(new char[] { ',' });

            if (strline.IndexOf(""") > -1)

            {

                for (int i = 0; i < aryline.Length; i++)

                {

                    if (aryline[i].Contains("""))

                    {

                        ss.Add(aryline[i] + "," + aryline[++i]);

                        if (i == aryline.Length - 1)

                        {

                            break;

                        }

                    }

                    else

                    {

                        ss.Add(aryline[i]);

                    }

                }

            }

            else

            {

                ss.AddRange(aryline);

            }

            if (blnFlag)

            {

                blnFlag = false;

                intColCount = ss.Count;

                for (int i = 0; i < intColCount; i++)

                {

                    mydc = new DataColumn(ss[i]);

                    mydt.Columns.Add(mydc);

                }

            }

            mydr = mydt.NewRow();

            for (int i = 0; i < intColCount; i++)

            {

                mydr[i] = ss[i];

            }

            mydt.Rows.Add(mydr);

        }

        return mydt;

    }

    #endregion

    四、C語言 fgets函數(shù)讀取CSV文件如何從第二行開始,第一行是表頭。

    第一次獲取的數(shù)據(jù)不要就可以了,何必這么麻煩。

    函數(shù)原型:

    char *fgets(char *buf, int bufsize, FILE *stream);

    參數(shù):

    *buf: 字符型指針,指向用來存儲所得數(shù)據(jù)的地址。

    bufsize: 整型數(shù)據(jù),指明存儲數(shù)據(jù)的大小。

    *stream: 文件結(jié)構(gòu)體指針,將要讀取的文件流。

    返回值:

    成功,則返回第一個(gè)參數(shù)buf;

    在讀字符時(shí)遇到end-of-file,則eof指示器被設(shè)置,如果還沒讀入任何字符就遇到這種情況,則buf保持原來的內(nèi)容,返回NULL;

    如果發(fā)生讀入錯(cuò)誤,error指示器被設(shè)置,返回NULL,buf的值可能被改變。

    例子:

    #include<string.h>

    #include<stdio.h>

    int main ( void )

    {

        FILE*stream;

        char string[]="Thisisatest";

        char msg[20];

    /*openafileforupdate*/

        stream=fopen("DUMMY.FIL","w+");

    /*writeastringintothefile*/

        fwrite(string,strlen(string),1,stream);

    /*seektothestartofthefile*/

        fseek(stream,0,SEEK_SET);

    /*readastringfromthefile*/

        fgets(msg,strlen(string)+1,stream);

    /*displaythestring*/

        printf("%s",msg);

        fclose(stream);

        return 0;

    }

    以上就是關(guān)于c++讀取csv相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。


    推薦閱讀:

    c++讀取csv(c讀取csv文件)

    ChatGPT中文版VSCode插件(vscodec++插件)

    c++會被淘汰嗎(c會被淘汰嗎)

    沈師景觀設(shè)計(jì)實(shí)習(xí)(沈陽景觀設(shè)計(jì)師)

    江蘇蘇州景觀設(shè)計(jì)快題(蘇大2020景觀快題)