fread()实例
时间: 2023-07-31 16:04:31 浏览: 32
下面是一个使用fread()函数读取二进制文件的示例:
```c
#include <stdio.h>
int main() {
FILE *fp;
char buffer[20];
size_t count;
fp = fopen("file.bin", "rb"); // 以二进制模式打开文件
if (fp == NULL) {
printf("Failed to open file\n");
return 1;
}
count = fread(buffer, sizeof(char), 20, fp); // 读取20个字节到buffer中
printf("Read %zu bytes: %s\n", count, buffer);
fclose(fp);
return 0;
}
```
在上面的示例中,我们打开了一个名为file.bin的二进制文件,并读取了前20个字节到buffer中。由于该文件是二进制文件,我们需要以“rb”模式打开它。如果文件无法打开,则会输出错误消息并返回一个非零值。最后,我们关闭了文件指针。
相关问题
fread()C语言实例
fread()函数是C语言中用于读取二进制文件的函数,它可以连续读取多个数据块,并将它们存储到一个数组中。下面是一个使用fread()函数读取二进制文件的实例:
```c
#include <stdio.h>
#include <stdlib.h>
struct student {
int id;
char name[20];
int score;
};
int main() {
FILE *fp;
struct student stu[5];
int i, n;
// 打开二进制文件
fp = fopen("data.dat", "rb");
if (fp == NULL) {
printf("Cannot open file.\n");
exit(1);
}
// 读取数据
n = fread(stu, sizeof(struct student), 5, fp);
printf("Read %d items.\n", n);
// 输出数据
for (i = 0; i < n; i++) {
printf("ID: %d, Name: %s, Score: %d\n", stu[i].id, stu[i].name, stu[i].score);
}
// 关闭文件
fclose(fp);
return 0;
}
```
以上代码中,首先定义了一个结构体student,包含学生的ID、姓名和成绩。然后使用fread()函数读取二进制文件data.dat中的数据,将读取的数据存储到数组stu中。最后遍历数组,输出每个学生的信息。
需要注意的是,fread()函数的第一个参数是存储读取数据的数组名,第二个参数是每个数据块的大小,第三个参数是要读取的数据块个数,第四个参数是文件指针。在读取数据之前,需要使用fopen()函数打开二进制文件,并检查文件是否成功打开。读取数据完成后,需要使用fclose()函数关闭文件。
c语言fwrite与fread的实例
fwrite和fread是C语言中用于文件读写的函数。
fwrite函数用于将数据写入文件中,其语法为:
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);
其中,ptr为要写入的数据的指针,size为每个数据项的大小,count为要写入的数据项的个数,stream为文件指针。
例如,下面的代码将一个整数数组写入文件中:
```
#include <stdio.h>
int main()
{
int arr[] = {1, 2, 3, 4, 5};
FILE *fp = fopen("data.txt", "wb");
fwrite(arr, sizeof(int), 5, fp);
fclose(fp);
return ;
}
```
fread函数用于从文件中读取数据,其语法为:
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
其中,ptr为存储读取数据的缓冲区的指针,size为每个数据项的大小,count为要读取的数据项的个数,stream为文件指针。
例如,下面的代码从文件中读取一个整数数组:
```
#include <stdio.h>
int main()
{
int arr[5];
FILE *fp = fopen("data.txt", "rb");
fread(arr, sizeof(int), 5, fp);
fclose(fp);
for(int i = ; i < 5; i++)
{
printf("%d ", arr[i]);
}
return ;
}
```
以上就是fwrite和fread的简单实例。