C 读取一个fwrite写的文件内容
时间: 2023-07-13 21:06:05 浏览: 51
要读取一个fwrite写的文件内容,可以使用fread函数。
下面是一个示例代码:
```c
#include <stdio.h>
int main() {
FILE *fp;
char buffer[1024];
size_t read_count;
fp = fopen("example.txt", "rb"); // 以二进制模式打开文件
if (fp == NULL) {
perror("Error opening file");
return 1;
}
read_count = fread(buffer, sizeof(char), sizeof(buffer), fp);
printf("Read %zu bytes from file:\n%s", read_count, buffer);
fclose(fp);
return 0;
}
```
在这个示例代码中,我们使用了fopen函数以二进制模式打开了一个文件。然后,我们使用fread函数从文件中读取了一定数量的字节,并将其存储在一个缓冲区中。最后,我们打印了读取的字节数和缓冲区中的内容。
需要注意的是,在使用fread函数时,我们需要指定每个元素的大小和要读取的元素数量,这里我们使用了sizeof(char)和sizeof(buffer)。同时,我们还需要检查fread函数的返回值,以确保我们成功读取了指定数量的字节。
相关问题
fread读取fwrite文件
fread和fwrite都是C语言中用于文件读写的函数,其中fread用于从文件中读取数据,fwrite用于向文件中写入数据。具体来说,fread的函数原型为:
```c
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
```
其中,ptr是内存地址,用于存放读取的数据;size是每个数据块的大小;count是要读取的数据块的数量;stream是文件指针,指向要读取的文件。fread函数的返回值是实际读取的数据块数量。
而fwrite的函数原型为:
```c
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);
```
其中,ptr是内存地址,保存要写入文件的数据;size是每个数据块的大小;count是要写入的数据块的数量;stream是文件指针,指向要写入的文件。fwrite函数的返回值是实际写入的数据块数量。
c语言将一个数组存入文件及读取这个文件
存入文件:
```c
#include <stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
FILE *fp;
fp = fopen("array.txt", "wb"); // 以二进制写模式打开文件
if (fp != NULL) {
fwrite(arr, sizeof(int), 5, fp); // 将数组写入文件
fclose(fp); // 关闭文件
}
return 0;
}
```
读取文件:
```c
#include <stdio.h>
int main() {
int arr[5];
FILE *fp;
fp = fopen("array.txt", "rb"); // 以二进制读模式打开文件
if (fp != NULL) {
fread(arr, sizeof(int), 5, fp); // 从文件中读取数组
fclose(fp); // 关闭文件
// 输出读取的数组
for (int i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
}
return 0;
}
```
这里用到了 fopen、fwrite、fread、fclose 函数,它们分别用于打开文件、写入数据、读取数据和关闭文件。在写入和读取数据时,需要指定数据的大小和数量。在这个例子中,数组的大小是 sizeof(int),数量是 5。