server-api-fread

原型

用来从文件流中读取数据。Fread()会返回实际读取到的nmemb数目,如果此值比参数nmemb 来得小,则代表可能读到了文件尾或有错误发生,这时必须用feof()或ferror()来决定发生什么情况。

1
2
3
4
5
6
7
8
// ptr:指向欲存放读取进来的数据空间
// size:每个数据结构的长度
// nmemb:要读取的数据结构数量
// stream:已打开的文件流指针
//
// return:
// 实际写入的结构体数量,如果此值比参数nmemb 来得小,则代表可能读到了文件尾或有错误发生,这时必须用feof()或ferror()来决定发生什么情况。
size_t fread(void * ptr,size_t size,size_t nmemb,FILE * stream);

使用参考

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include<stdio.h>

#define NMEMB 3

struct student
{
char name[20];
int age;
float height;
}arr_stu[NMEMB];

int main()
{
FILE * stream;
int i;
stream = fopen("test","r");
int rnum = fread(arr_stu, sizeof(struct student), NMEMB, stream);
fclose(stream);

for(i=0; i < rnum; ++i){
printf("name=%s, age=%d, height=%f\n", arr_stu[i].name, arr_stu[i].age, arr_stu[i].height);
}

return 0;
}