LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 854|回复: 4

请问大家如何实现这个文件数据读取的问题?谢谢

[复制链接]
发表于 2009-10-12 17:52:28 | 显示全部楼层 |阅读模式
在 abc.dat 文件中:
=========================
A_IP  111.0.22.33
B_IP  222.0.33.66
Mode  1
=========================
如何将这些数据读入到特定的结构体中呢?
比如这个结构体为:
struct data
{
char A_IP[4];
char B_IP[4];
int  Mode;
}

怎么可以读取进结构体呢?
请大家指点
如果用笨办法,open,fread,close........将全部文件读入buffer,再一个字节一个字节地操作,这样太笨了。不知道有没有什么好办法,比较快速地将数据取出来,放进结构体内?
谢谢
 楼主| 发表于 2009-10-12 23:51:26 | 显示全部楼层
请大家帮助
谢谢
回复 支持 反对

使用道具 举报

发表于 2009-10-13 11:28:01 | 显示全部楼层
fscanf可以
FILE * file=open("abc.dat","wr+");
fscanf(file,“%d.%d.%d.%d”,&A_IP[0],&A_IP[1],&A_IP[2],&A_IP[3]);
fscanf(file,“%d.%d.%d.%d”,&B_IP[0],&B_IP[1],&B_IP[2],&B_IP[3]);
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-14 11:18:12 | 显示全部楼层
谢谢哥们:)
回复 支持 反对

使用道具 举报

发表于 2009-10-22 09:34:46 | 显示全部楼层
Post by neubuffalo;2035950
fscanf可以
FILE * file=open("abc.dat","wr+");
fscanf(file,“%d.%d.%d.%d”,&A_IP[0],&A_IP[1],&A_IP[2],&A_IP[3]);
fscanf(file,“%d.%d.%d.%d”,&B_IP[0],&B_IP[1],&B_IP[2],&B_IP[3]);


那文件每一行开头的"A_IP B_IP Mode"怎么略过呢?而且会有缓冲区溢出问题哦
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表