評價: 0 回應: 1 閱覽: 352
置頂

如何讀取逗號分隔的文字檔

大家好~

小花ㄦ想請問大家

我想要讀取一個txt檔,不同的資料用逗號隔開

內容如下

S1,Sam,20,London
S2,Jay,30,Paris
S3,Kate,20,London
S4,May,10,Taipei

要把每筆資料指定到不同的變數中

可是我用下列程式片段讀取

第一列的資料會全部跑到S[i].S裡面去,之後就開始出現亂碼

i=0;
while(!feof(fptr_s))
{
  fscanf(fptr_s ,"%s,%s,%d,%s\n", S[i].S, S[i].SNAME, &S[i].STATUS, S[i].CITY)
;
  i++;
}
fclose(fptr_s);


但如果把txt檔裡面的逗號改成空格

fscanf改成:

fscanf(fptr_s ,"%s %s %d %s", S[i].S, S[i].SNAME, &S[i].STATUS, S[i].CITY);

資料就會存到對應的變數中

所以我覺得是逗號處理的問題

請問要怎麼修改呢?

熱門回應

改成fscanf(fptr_s,"%[^,],%[^,],%d,%s\n",S[i].S,...);

%[^,]是指只讀到','之前 詳細可以查sscanf、regex的用法

會員登入 (先登入會員才能回覆留言喔!)

Facebook留言