[問題] 有關印出讀入文件的資料問題

看板C_and_CPP (C/C++)作者 (Waiting)時間16年前 (2009/02/24 19:35), 編輯推噓1(107)
留言8則, 3人參與, 最新討論串1/1
各位版友好 我想請教一下有關印出檔案內資料的問題 有一份test.txt檔如下 1234,HBC,14.5, 5208,GHW,13.9, 1395,RFJ,19.4, 內含總共9筆資料(資料間一定要以逗點做為區隔) 我想寫一個程式印出先讀入這個test.txt檔 再印出test.txt檔內的9筆資料 執行結果希望如下 ======================================================== Account Name Balance 1234 HBC 14.5 5208 GHW 13.9 1395 RFJ 19.4 ======================================================== 我的程式碼如下 #include <stdio.h> #include <stdlib.h> int main () { FILE * pFile; int c; int n = 0; int INDEX[3]; char name[30]; float INDEX2[3]; pFile=fopen ("C:\\test.txt","r"); if (pFile==NULL) perror ("Error opening file"); else { printf( "%-10s%-10s%s\n", "Account", "Name", "Balance" ); do { c = fgetc (pFile); if (c == ','){ printf( File,"%-10d%-10s%f\n", INDEX, name, INDEX2 ); n++; } } while (c != EOF); fclose (pFile); printf ("There are %d datas.\n",n); } system("pause"); return 0; } =================================================================== 執行結果確定有讀入這個檔案 也確定裡面有9筆資料 可是不知道為什麼印出的資料都是亂碼 不才想請教一下版友 請問該怎麼修改才能印出正確的資料 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.178.18

02/24 19:40, , 1F
你要把抓到的資料組起來分別放到 INDEX INDEX2 name 裡
02/24 19:40, 1F

02/24 19:43, , 2F
恩 因為想很久不知道怎麼改 可請樓上版友稍微提示我嗎
02/24 19:43, 2F

02/24 19:44, , 3F
謝謝<(__ __)>
02/24 19:44, 3F

02/24 19:58, , 4F
建議使用fgets()一次取得一列資料,再使用strtok()取得
02/24 19:58, 4F

02/24 19:59, , 5F
逗號分隔的每欄資料. 細節可以看 MSDN 說明.
02/24 19:59, 5F

02/24 20:03, , 6F
另外, 您的程式宣告 INDEX 與 INDEX2 為陣列, 所以要數值應
02/24 20:03, 6F

02/24 20:04, , 7F
放到 INDEX[0] 裡, 您的code是印出INDEX, 那應該會印出位址.
02/24 20:04, 7F

02/24 20:44, , 8F
謝謝<(__ __)>
02/24 20:44, 8F
文章代碼(AID): #19ezk2xi (C_and_CPP)
文章代碼(AID): #19ezk2xi (C_and_CPP)