std::freopen

来自cppreference.com
< cpp‎ | io‎ | c

定义于头文件 <cstdio>
FILE *freopen( const char *filename, const char *mode, FILE *stream );
现有的文件流stream重新分配到不同的文件确定由filenameusing指定的模式。 mode使用,以确定新的文件访问模式.
原文:
Reassigns an existing file stream stream to a different file identified by filenameusing specified mode. mode is used to determine the new file access mode.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

目录

[编辑] 参数

filename -
文件名称相关联的文件流
原文:
file name to associate the file stream to
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
mode -
null结尾的字符串,确定新的文件访问模式
文件访问
模式字符串
含义 解释 若文件已存在
的行动
若文件不存在
的行动
"r" 为读取打开文件 从起始读取 打开失败
"w" 为写入创建文件 销毁内容 创建新文件
"a" 后附 后附到文件 写入到末尾 创建新文件
"r+" 读扩展 为读取/写入打开文件 从起始读取 错误
"w+" 写扩展 为读/写创建文件 销毁内容 创建新文件
"a+" 后附扩展 为读/写打开文件 写入到末尾 创建新文件
文件访问模式标志 "b" 能可选地指定,以用二进制模式打开文件。此标志在 POSIX 系统上无效果,但例如在 Windows 上,它禁用 '\n''\x1A' 的特殊处理。
在后附文件访问模式上,写入数据到文件尾,忽略文件位置指示器的当前位置。
文件访问模式标志 "x" 能可选地后附到 "w" 或 "w+" 指定符。此标志强制函数在文件存在的情况下失败,而非重写文件。(C++17)
若模式不是以上字符串之一,则行为未定义。一些实现定义额外的支持模式(例如 Windows )。
原文:
null-terminated character string determining new file access mode
文件访问
模式字符串
含义 解释 若文件已存在
的行动
若文件不存在
的行动
"r" 为读取打开文件 从起始读取 打开失败
"w" 为写入创建文件 销毁内容 创建新文件
"a" 后附 后附到文件 写入到末尾 创建新文件
"r+" 读扩展 为读取/写入打开文件 从起始读取 错误
"w+" 写扩展 为读/写创建文件 销毁内容 创建新文件
"a+" 后附扩展 为读/写打开文件 写入到末尾 创建新文件
文件访问模式标志 "b" 能可选地指定,以用二进制模式打开文件。此标志在 POSIX 系统上无效果,但例如在 Windows 上,它禁用 '\n''\x1A' 的特殊处理。
在后附文件访问模式上,写入数据到文件尾,忽略文件位置指示器的当前位置。
文件访问模式标志 "x" 能可选地后附到 "w" 或 "w+" 指定符。此标志强制函数在文件存在的情况下失败,而非重写文件。(C++17)
若模式不是以上字符串之一,则行为未定义。一些实现定义额外的支持模式(例如 Windows )。
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
stream -
修改的文件流
原文:
the file stream to modify
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 返回值

stream成功,NULL失败
原文:
stream on success, NULL on failure
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 示例

stdout下面的代码重定向到一个文件中
原文:
The following code redirects stdout to a file
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

#include <cstdio>
 
int main()
{
    std::printf("stdout is printed to console");
    std::freopen("redir.txt", "w", stdout);
    std::printf("stdout is redirected to a file")
    std::fclose(stdout);
}

输出:

stdout is printed to console

[编辑] 另请参阅

打开文件
(函数) [编辑]
关闭文件
(函数) [编辑]
freopenC 文档