c语言fread函数的用法

admin 37 0

c语言fread函数的用法

在C语言中,fread()函数是一个非常重要的函数,用于从文件中读取数据,它通常用于二进制文件的读取,但也可以用于文本文件的读取,fread()函数的原型如下:

```c

size_t fread(void *ptr, size_t size, size_t count, FILE *stream)

参数说明:

* ptr:指向用于存储数据的内存块的指针。
* size:要读取的每个元素的大小,以字节为单位。
* count:要读取的元素数量。
* stream:指向FILE对象的指针,该对象指定了一个输入流。

fread()函数从stream指向的文件中读取count个元素,每个元素的大小为size字节,并将它们存储在ptr指向的内存块中。函数返回实际读取的元素数量。如果发生错误或到达文件末尾,该数量可能小于count。

下面是一个使用fread()函数从二进制文件中读取数据的示例:

c

#include

int main() {

FILE *fp;

int data[10];

fp = fopen("data.bin", "rb");

if (fp == NULL) {

printf("Failed to open file.\n");

return 1;

}

fread(data, sizeof(int), 10, fp);

fclose(fp);

// 打印读取的数据

for (int i = 0; i < 10; i++) {

printf("%d ", data[i]);

printf("\n");

return 0;

}

在上面的示例中,我们打开了一个名为"data.bin"的二进制文件,并使用fread()函数从该文件中读取了10个整数。这些整数被存储在data数组中,并随后被打印出来。需要注意的是,我们使用了"rb"模式来打开文件,以确保以二进制方式读取文件。

除了从二进制文件中读取数据外,fread()函数还可以用于从文本文件中读取数据。但是,与二进制文件不同,文本文件中的数据通常是按照特定的格式进行编码的,因此需要使用适当的方法来解析数据。下面是一个使用fread()函数从文本文件中读取数据的示例:

char buffer[100];

fp = fopen("data.txt", "r");

while (fgets(buffer, 100, fp)) {

printf("%s", buffer);

```

在上面的示例中,我们打开了一个名为"data.txt"的文本文件,并使用fgets()函数从该文件中读取每一行数据,fgets()函数将每一行数据存储在buffer数组中,并返回一个指向该数组的指针,我们可以将该指针打印出来,以查看读取的数据,需要注意的是,fgets()函数最多读取count-1个字符,并在末尾添加一个空字符来形成一个字符串,我们在调用fgets()函数时将count设置为100,以确保能够读取足够多的数据。