導航:首頁 > 版本升級 > c語言怎麼讀取csv文件

c語言怎麼讀取csv文件

發布時間:2023-08-07 08:22:50

㈠ C語言讀CSV文件問題

DEBUG的時候可以發現,第一次循環時,執行到yy+=atof(stt[7]); 時,stt[7]的值突然被改變了,第二次循環時,甚至只執行到hx+=atof(stt[6]); stt[6]也被改變了.

我認為問題是由於strtok是不安全所導致的,它生成的字元串數組可能被其他線程修改.

我建議你用sscanf來讀取字元串中的數字,比如:

#include "string.h"
#include "math.h"
void main()
{
FILE *fp; /*定義一個文件指針*/
double sx,yw,wl,hx,yy;
int i;
char str[81];
double score[5];
sx=yw=wl=hx=yy=0;
fp=fopen("分數表.csv", "rb"); /*打開文件只讀*/
for(i=0;!feof(fp);i++)
{
fscanf(fp,"%s\n",str);
sscanf(str+17,"%lf,%lf,%lf,%lf,%lf",score,score+1,score+2,score+3,score+4);
sx+=score[0];
yw+=score[1];
wl+=score[2];
hx+=score[3];
yy+=score[4];
}
printf("%f,%f,%f,%f,%f\n",sx,yw,wl,hx,yy);
fclose(fp);
}

㈡ 用c語言來打開csv格式內容怎麼做

csv是逗號分隔的, 其它的 都等同於純文本
所以 簡單的csv文件, 只需要按照文本方式打開
然後以逗號為分隔符 讀取每個域的內容就可以了。
可以根據內容約定, 存儲成數組或者結構體

㈢ C語言讀取CSV文件到二維數組

這個程序的關鍵部分是讀每一行中,

由逗號分隔的各個欄位,也即token.
對每一行,把每個欄位逐一取出,然後想用就用,不用丟棄.----這個思路,應該是既單純,又比較優雅吧.
為此,為你單獨寫了這一思路的實現及相關測試,
代碼如下:
---------------------------------------opstring.c
int get_next_token_CLangVersion
( const char* from , //0218,13
char* token, char token_seper )
{
static char* from_old = 0 ;
static int fromidx = 0;
char c ;
//init for new begin
if (from != from_old )
{ from_old = from ;
fromidx = 0 ;
}

//init for next new token
*token = 0 ;

//check --can be getting ?
if (fromidx == -1) return -1;

//get token
//get a char from "from", then get again
while ( (c=*(from+fromidx++))
!= 0 && c != token_seper )
*(token++) = c ;

//get done
if ( c== 0) fromidx = -1 ;
if ( c== token_seper)
{/*do nothing .
fromidx恰好已指向下一個token之起始位置*/
}
*token = 0; //token結束
return 0 ;
}

-------------------------------------------------test.c

#include <stdio.h>
#include "opstring.h"
void main ()
{
char token[100] ;
char s[1024] ;
int ret = 0;

scanf ( "%s", s) ;
*token = '#';
for ( ; ret != -1;)
{ printf ("token--%s--\n", token) ;
ret = get_next_token_CLangVersion (s, token, ',') ;
}
}
/*
23,,,3444444443lld,,4444444444444444,266,d,,fddd3-,
token--#--
token--23--
token----
token----
token--3444444443lld--
token----
token--4444444444444444--
token--266--
token--d--
token----
token--fddd3---
token----
*/

-------------------------------------------opstring.h
int get_next_token_CLangVersion ( const char* from ,char* token, char token_seper ) ;

該實現在Borland C++ 5.6.4 for Win32 環境下,測試通過.

該實現是可復用的喲.祝你好運.
關鍵部分解決了,其它部分對你而言,應該是小菜一碟吧呵,我想.^_^

㈣ C語言中怎麼動態的連接CSV格式的文件,並進行數據處理 誰知道啊,高分求教

CSV文件可看作是用逗號抄分隔的文本文件襲(用記事本打開看就知道了)。
直接按照讀取TXT文本文件的方式讀取就可以了,每行的數據再用Split()函數按照逗號','分開就可以得到每列的數據,然後就可以進行數據處理了。

㈤ 用c語言讀取csv文件中的一列數據並求這些數據的平均值

#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是按逗號分隔的
如果確定有且只有兩列
那麼循環用
fscanf(fp, "%f,%f", &a[i], &b[i]);
即可
其中fp為打開的文件指針 a b是你的目標數組
i為讀入的下標
判斷fscanf返回值 或者讀後判斷feof可以確定終止條件

㈦ C語言 fgets函數讀取CSV文件如何從第二行開始,第一行是表頭。

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

函數原型:

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

參數:

*buf:字元型指針,指向用來存儲所得數據的地址。

bufsize:整型數據,指明存儲數據的大小。

*stream:文件結構體指針,將要讀取的文件流。

返回值:

成功,則返回第一個參數buf;

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

如果發生讀入錯誤,error指示器被設置,返回NULL,buf的值可能被改變。

例子:

#include<string.h>
#include<stdio.h>

intmain(void)
{
FILE*stream;
charstring[]="Thisisatest";
charmsg[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);
return0;
}
閱讀全文

與c語言怎麼讀取csv文件相關的資料

熱點內容
下載編程貓後哪裡有客服 瀏覽:13
如何編輯歌曲文件格式 瀏覽:638
cf無限領取cdk工具 瀏覽:350
如何讓手機文件保存到電腦上 瀏覽:459
sa資料庫默認密碼是多少 瀏覽:191
電腦正在查找文件 瀏覽:541
一個文件盒省內寄順豐多少錢 瀏覽:41
誅仙62坐騎怎麼升級到63 瀏覽:926
linux以日期查看日誌記錄 瀏覽:446
工業大數據是什麼東西 瀏覽:881
魅族note3怎麼重置網路 瀏覽:510
c語言程序設計模 瀏覽:92
兒童怎麼做可編程機 瀏覽:603
數據計算屬於什麼統計學 瀏覽:921
07word怎麼去掉標記 瀏覽:979
qq緩存的數據是什麼 瀏覽:348
LED主Kv文件多少兆 瀏覽:856
蘋果edge怎麼刪除下載文件 瀏覽:471
sas邏輯回歸代碼 瀏覽:572
用於keil下的stc器件資料庫 瀏覽:400

友情鏈接