[問題] 如何讀取用逗號分隔的文字檔資料?
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VS 2010
問題(Question):
想請問大家
我想要讀取一個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);
資料就會存到對應的變數中
所以我覺得是逗號處理的問題
請問要怎麼修改呢?
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.126.148.187
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1443946182.A.6F6.html
→
10/04 17:01, , 1F
10/04 17:01, 1F
謝謝 我會試試看,不過希望有更直覺的做法^^
→
10/04 17:07, , 2F
10/04 17:07, 2F
謝謝大大 改了之後真的可以把資料存入變數了
想請問一下%[^,]是什麼意思?
剛剛只查到^是XOR
※ 編輯: Bluedicker (59.126.130.188), 10/04/2015 17:38:17
推
10/04 17:46, , 3F
10/04 17:46, 3F
→
10/04 17:47, , 4F
10/04 17:47, 4F
瞭解了 第一次看到這樣的用法
謝謝你們^_^
※ 編輯: Bluedicker (39.10.160.31), 10/04/2015 17:55:05
→
10/04 23:26, , 5F
10/04 23:26, 5F
→
10/04 23:26, , 6F
10/04 23:26, 6F
好哦 謝謝^_^
推
10/05 11:41, , 7F
10/05 11:41, 7F
這樣有點累吧XD
→
10/05 21:31, , 8F
10/05 21:31, 8F
朋友也都覺得用strtok比較好
我要多學學了...
※ 編輯: Bluedicker (39.10.68.48), 10/06/2015 10:52:57
推
10/06 14:53, , 9F
10/06 14:53, 9F
→
10/06 14:58, , 10F
10/06 14:58, 10F