freopen

函数名: freopen
功 能: 替换一个流,或者说重新分配文件指针,实现重定向。如果stream流已经打开,则先关闭该流。如果该流已经定向,则freopen将会清除该定向。此函数一般用于将一个指定的文件打开一个预定义的流:标准输入、标准输出或者标准出错。
用 法: FILE *freopen(const char *filename,const char *type, FILE *stream);
头文件:stdio.h
返回值:如果成功则返回该指向该stream的指针,否则为NULL。

例1:
#include <stdio.h>
int main()
{
/* redirect standard output to a file */
if (freopen("D:OUTPUT.txt", "w", stdout)==NULL)
fprintf(stderr, "error redirecting stdout\n");
/* this output will go to a file */
printf("This will go into a file.");
/* close the standard output stream */
fclose(stdout);
return 0;
}
### C++ 中 `freopen` 函数的用法 在C++中,`freopen` 是一个标准库函数,用于重新定向标准输入输出流到指定文件。这使得程序可以从文件读取数据或将输出重定向至文件而不是默认的标准设备(通常是键盘和屏幕)。此功能对于调试或批量处理非常有用。 #### 基本语法 ```cpp FILE *freopen(const char *path, const char *mode, FILE *stream); ``` - `path`: 文件路径字符串。 - `mode`: 打开模式字符串,如 `"r"` 表示只读,`"w"` 表示写入等。 - `stream`: 要被替换的标准流指针,通常为 `stdin`, `stdout` 或者 `stderr`. 当调用成功时返回指向新打开文件的 `FILE*` 类型指针;如果失败则返回 `NULL` 并保持原来的流不变[^1]。 #### 使用实例 下面是一个简单的例子来展示如何使用 `freopen` 将控制台输出重定向到文件: ```cpp #include <iostream> #include <cstdio> int main() { // 将 stdout 重定向到 "output.txt" std::freopen("output.txt", "w", stdout); std::cout << "This message will be written to output.txt." << std::endl; // 关闭并恢复原始 stdout 流 fclose(stdout); // 输出恢复正常,在屏幕上显示消息 std::cout << "Back to normal console output." << std::endl; } ``` 在这个例子中,首先通过 `freopen` 把标准输出流 (`stdout`) 改变到了名为 `output.txt` 的文件上。之后任何发送给 `std::cout` 的内容都会保存在此文件内直到关闭该文件为止。最后再次打印的信息会回到正常的终端输出因为已经恢复了原状[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值