作者Jericle15 (Waiting)
看板C_and_CPP
標題[問題] 有關印出讀入文件的資料問題
時間Tue Feb 24 19:35:29 2009
各位版友好
我想請教一下有關印出檔案內資料的問題
有一份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
1F:推 ledia:你要把抓到的資料組起來分別放到 INDEX INDEX2 name 裡 02/24 19:40
2F:→ Jericle15:恩 因為想很久不知道怎麼改 可請樓上版友稍微提示我嗎 02/24 19:43
3F:→ Jericle15:謝謝<(__ __)> 02/24 19:44
4F:→ kzlee:建議使用fgets()一次取得一列資料,再使用strtok()取得 02/24 19:58
5F:→ kzlee:逗號分隔的每欄資料. 細節可以看 MSDN 說明. 02/24 19:59
6F:→ kzlee:另外, 您的程式宣告 INDEX 與 INDEX2 為陣列, 所以要數值應 02/24 20:03
7F:→ kzlee:放到 INDEX[0] 裡, 您的code是印出INDEX, 那應該會印出位址. 02/24 20:04
8F:→ Jericle15:謝謝<(__ __)> 02/24 20:44