c++的freopen函数如何使用

avatar
作者
猴君
阅读量:7

freopen函数可以用于重定向标准输入输出流。

其原型为:

FILE *freopen(const char *filename, const char *mode, FILE *stream); 

filename参数是要被打开的文件名。

mode参数是打开文件的模式,可以是以下几种模式之一:

  • “r”:读取模式,打开一个已有的文本文件进行读取。

  • “w”:写入模式,打开一个文本文件进行写入,如果文件不存在则创建,如果文件存在则清空文件内容。

  • “a”:追加模式,打开一个文本文件进行写入,如果文件不存在则创建。

  • “rb”:读取二进制模式,打开一个已有的二进制文件进行读取。

  • “wb”:写入二进制模式,打开一个二进制文件进行写入,如果文件不存在则创建,如果文件存在则清空文件内容。

  • “ab”:追加二进制模式,打开一个二进制文件进行写入,如果文件不存在则创建。

stream参数是已经打开的文件流指针,可以是stdin、stdout、stderr或者通过fopen函数打开的文件流指针。

下面是一个示例,将标准输入流重定向到一个文件,然后从该文件中读取数据:

#include <iostream> #include <cstdio> int main() { freopen("input.txt", "r", stdin); // 将标准输入流重定向到文件input.txt int num; std::cin >> num; // 从文件中读取数据 std::cout << "Number: " << num << std::endl; return 0; } 

在运行该程序时,输入的数据将从input.txt文件中读取。

注意:在使用freopen函数时,需要小心文件的打开和关闭操作,以免出现资源泄漏或者文件操作错误的情况。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!