作者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