C语言 从文件中读取数据到数组的问题

一个文件hfm.txt中保存有下面的数据

a----->7
b----->5
c----->2
d----->4
a----->0
b----->10
c----->110
d----->111

怎么样才能把a b c d分别读到一个数组,把对应的编码0 10 110 111分别读到另一个数组中?
谢谢大家了,被这个问题卡了好久,在做哈夫曼编码,不解决这个问题的话,每次都要初始化

建议使用格式
a (TAB) 7 (TAB) 0
b (TAB)5 (TAB) 10
c (TAB)2 (TAB) 110
d (TAB)4 (TAB) 111
中间用Tab键隔开,取的时候
循环用fscanf(pFile,"%s\t%s\t%s",buff1,buff2,buff3);就可以分别把每一行的读入了
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-12-16
如果就是像你列的那么简单的话,
那么直接
将前4行的'>'字符到'\n'间的内容读到一个数组
将后4行的'>'字符到'\n'间的内容读到一个数组

如果行数不固定的话,
建议更改hfm.txt中数据记录方式,例如写文件的时候,就按照以下方式写:
a----->7#
b----->5#
c----->2#
d----->4#
a----->0$
b----->10$
c----->110$
d----->111$
将'>'字符到'#'间的内容读到一个数组
将'>'字符到'$'间的内容读到一个数组
第2个回答  2008-12-17
农武吉 - 江湖新秀 四级 不简单,我想的,他已经做到了,高,高高,高高高
第3个回答  2008-12-17
------------------已经在turboc2中调试运行过了,绝对准确!------------- 我把后面的数字理解成整数型了,所以要进行字符和数字之间的转换,不知道是否符合你的本意
#include <stdio.h>
void Getdata(char* a,int * b,int * count)
{

char temp[10];
char tex[100];
int i,j,k,Isnumber;
FILE * fp;
fp=fopen("hfm.txt","r");
if(fp!=NULL)
{
i=0;

while(!feof(fp))
{
fscanf(fp,"%s",tex); /*读取文件一行的字符串*/
a[i]=tex[0]; /* 每行第一个字符直接存到数组a中*/
k=0; Isnumber=0;
for(j=0;tex[j]!='\0';j++) /*挨个字符查找 >然后截取其后的字符存到temp中 */

{
if(Isnumber==1) temp[k++]=tex[j];

if(tex[j]=='>')Isnumber=1;
}
temp[k]='\0';
b[i]=atoi(temp); /* 把存在temp中的字符转化成整数*/

i++;
}

fclose(fp);
}

*count=i; /* 数组元素的个数*/
}
int main()
{
char a[1000];
int b[1000];
int count,i;

Getdata(a,b,&count);

printf("shu zu a shi:"); /*打印数组a的元素 */

for(i=0;i<count;i++)
{
printf("%c ",a[i]);
}
printf("\n");

printf("shu zu b shi:"); /*打印数组b的元素 */

for(i=0;i<count;i++)
{
printf("%d ",b[i]);
}
printf("\n");

}


相似回答