📅  最后修改于: 2023-12-03 14:39:49.734000             🧑  作者: Mango
在 C++ 中,fstream 类通常用于文件的输入输出,但有时我们需要更直接地与文件进行操作,这时候就需要我们使用 C++ 中提供的文件操作函数了。
其中,freopen()
是 C++ 中十分常用的文件操作函数之一。它的作用是将指定的文件与标准输入输出流进行关联,从而改变程序的输入输出形式。
freopen()
函数的语法如下:
FILE *freopen(const char *filename, const char *mode, FILE *stream);
其中,参数含义如下:
filename
:要打开的文件名mode
:文件打开方式。可选值包括 "r"(只读)、"w"(只写)、"a"(追加)等。stream
:要关联的标准输入输出流。可选值包括 stdin
(标准输入)、stdout
(标准输出)、stderr
(标准错误输出)等。下面我们来看一个简单的例子,它演示了如何将输入输出重定向到文件中:
#include <cstdio>
int main() {
// 将标准输入输出流重定向到文件 "input.txt" 和 "output.txt" 中
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
// 以下将从文件中读取输入并输出到文件中
int a, b;
while (scanf("%d%d", &a, &b) == 2) {
printf("%d + %d = %d\n", a, b, a + b);
}
// 输出完毕后,将原来的输入输出重定向回终端
freopen("/dev/tty", "r", stdin);
freopen("/dev/tty", "w", stdout);
return 0;
}
在上面的例子中,我们将标准输入输出流重定向到文件 "input.txt" 和 "output.txt" 中,并从文件中读取输入并输出到文件中。注意,在程序结束前,需要将原来的标准输入输出流重定向回终端(即使用 /dev/tty
)。
freopen()
是 C++ 中常用的文件操作函数之一,它可以将指定的文件与标准输入输出流进行关联,从而改变程序的输入输出形式。虽然在使用过程中需要略微小心一些,但它仍然是处理输入输出的重要工具之一。