c11使用流的方式读写文件
时间: 2023-11-23 15:58:26 浏览: 98
以流式方式读写文本文件
C11标准中引入了一种新的文件输入输出方式,称为“流式文件输入输出”(stream-based file I/O)。这种方式可以通过操作流(stream)来读写文件,相比于传统的文件输入输出函数,具有更好的可扩展性和更加面向对象的特点。
下面是一个简单的例子,演示如何使用流的方式读取文件的内容:
```c
#include <stdio.h>
int main() {
FILE *fp = fopen("example.txt", "r"); // 打开文件 example.txt
if (fp == NULL) {
printf("Failed to open file.\n");
return 1;
}
char buffer[256];
while (fgets(buffer, 256, fp) != NULL) { // 逐行读取文件内容
printf("%s", buffer);
}
fclose(fp); // 关闭文件
return 0;
}
```
在上面的代码中,我们首先使用 fopen() 函数打开了一个名为 example.txt 的文件,并将其赋值给了一个 FILE 类型的指针变量 fp。然后,我们使用 fgets() 函数逐行读取文件内容,并将每一行内容存储到一个长度为 256 的字符数组 buffer 中。最后,我们使用 printf() 函数将读取到的每一行内容输出到控制台上。
类似地,我们也可以使用流的方式向文件中写入内容,如下所示:
```c
#include <stdio.h>
int main() {
FILE *fp = fopen("example.txt", "w"); // 打开文件 example.txt
if (fp == NULL) {
printf("Failed to open file.\n");
return 1;
}
fputs("Hello, world!\n", fp); // 写入一行内容到文件中
fclose(fp); // 关闭文件
return 0;
}
```
在上面的代码中,我们首先使用 fopen() 函数打开了一个名为 example.txt 的文件,并将其赋值给了一个 FILE 类型的指针变量 fp。然后,我们使用 fputs() 函数将一行字符串内容("Hello, world!\n")写入到文件中。最后,我们使用 fclose() 函数关闭文件。
需要注意的是,使用流的方式读写文件时,需要在操作完成后使用 fclose() 函数关闭文件,以释放文件资源。此外,还可以使用 fgetpos() 和 fsetpos() 函数来定位文件指针的位置,以支持更加灵活的文件操作。
阅读全文