读书人

如何从一个文件中读入数据到结构体数组

发布时间: 2012-04-02 19:58:59 作者: rapoo

怎么从一个文件中读入数据到结构体数组中
文件shuju.txt(分隔符为“制表符”)中数据如:
1 0 3 4 5
2 1 4 4 4
3 2 3 4 5

程序中定义了一个节点结构体
typedef struct
{
int no;
int q1;
int q2;
int q3;
int q4;
}NODE;

怎么用文件方式从shuju.txt中读入数据到NODE dian[3]这个数组中啊?

[解决办法]
open
fgets
strtok

然后就是直接给结构体数组赋值了
[解决办法]
参考:
把结构用二进制方式写入文件,并读出来
[解决办法]
ifstream infile("shuju.txt",ios::binary);
infile.read(dian,sizeof(NODE));
[解决办法]
找到你想读取的,放到你想放到的地方,


[解决办法]

探讨

参考:
把结构用二进制方式写入文件,并读出来

[解决办法]
楼主看这个帖子, 里面两端代码远远超过你的需要,, 所以可以借鉴一下。。
http://topic.csdn.net/u/20110411/19/2d33c6ec-fe47-4ffd-8f27-44615a44af85.html
[解决办法]
是二进制还是文本数据啊?
按照lz的意思应该是文本形式的,我给一个方法试试:
C/C++ code
FILE * file = fopen("shuju.txt","rb");char line[256] = "\0";while(!feof(file)){NODE * node = (NODE *)callco(1, sizeof(NODE));fgets(line , 255, file);sscanf(line,""%d%d%d%d%d",&NODE->no,&NODE->q1,&NODE->q2,&NODE->q3,&NODE->q4)/*对node处理*/}fclose(file);
[解决办法]
你可以先用这个函数进行标准输入输出函数的重导向
freopen(),如,freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
这样你就可以直接用scanf()从"in.txt"中取得数据还有printf()把数据输出到"out.txt"里面了
也可以用fget();

读书人网 >C语言

热点推荐