freopen ()函数
2015-11-17 17:36
405 查看
1.格式
FILE * freopen ( const char * filename, const char * mode, FILE * stream );
2.参数说明
filename: 要打开的文件名
mode: 文件打开的模式,和fopen中的模式(r/w)相同
stream: 文件指针,通常使用标准流文件(stdin/stdout/stderr)
返回值:成功,则返回一个path所指定文件的指针;失败,返回NULL。(一般可以不使用它的返回值)
功能:实现重定向,把预定义的标准流文件定向到由path指定的文件中。标准流文件具体是指stdin、stdout和stderr。其中stdin是标准输入流,默认为键盘;stdout是标准输出流,默认为屏幕;stderr是标准错误流,一般把屏幕设为默认。通过调用freopen,就可以修改标准流文件的默认值,实现重定向。
3.使用方法
因为文件指针使用的是标准流文件,因此我们可以不定义文件指针。
接下来我们使用freopen()函数以只读方式r(read)打开输入文件slyar.in
freopen("slyar.in", "r", stdin);
然后使用freopen()函数以写入方式w(write)打开输出文件slyar.out
freopen("slyar.out", "w", stdout);
接下来的事情就是使用freopen()函数的优点了,我们不再需要修改scanf和printf,而是维持代码的原样就可以了。因为freopen()函数重定向了标准流,使其指向前面指定的文件。
最后只要使用fclose关闭输入文件和输出文件即可。
fclose(stdin);
fclose(stdout);
若要恢复句柄,可以重新打开标准控制台设备文件,只是这个设备文件的名字是与操作系统相关的。
DOS/Windows:
freopen("CON", "r", stdin);
Linux:
freopen("/dev/console", "r", stdin);
FILE * freopen ( const char * filename, const char * mode, FILE * stream );
2.参数说明
filename: 要打开的文件名
mode: 文件打开的模式,和fopen中的模式(r/w)相同
stream: 文件指针,通常使用标准流文件(stdin/stdout/stderr)
返回值:成功,则返回一个path所指定文件的指针;失败,返回NULL。(一般可以不使用它的返回值)
功能:实现重定向,把预定义的标准流文件定向到由path指定的文件中。标准流文件具体是指stdin、stdout和stderr。其中stdin是标准输入流,默认为键盘;stdout是标准输出流,默认为屏幕;stderr是标准错误流,一般把屏幕设为默认。通过调用freopen,就可以修改标准流文件的默认值,实现重定向。
3.使用方法
因为文件指针使用的是标准流文件,因此我们可以不定义文件指针。
接下来我们使用freopen()函数以只读方式r(read)打开输入文件slyar.in
freopen("slyar.in", "r", stdin);
然后使用freopen()函数以写入方式w(write)打开输出文件slyar.out
freopen("slyar.out", "w", stdout);
接下来的事情就是使用freopen()函数的优点了,我们不再需要修改scanf和printf,而是维持代码的原样就可以了。因为freopen()函数重定向了标准流,使其指向前面指定的文件。
最后只要使用fclose关闭输入文件和输出文件即可。
fclose(stdin);
fclose(stdout);
若要恢复句柄,可以重新打开标准控制台设备文件,只是这个设备文件的名字是与操作系统相关的。
DOS/Windows:
freopen("CON", "r", stdin);
Linux:
freopen("/dev/console", "r", stdin);
相关文章推荐
- Tomcat下,用MyEclipse建立web应用发布两种方法
- 设备树(五)linux内核主线booting-without-of.txt
- 关于art 中 oat file 的 isPic()?
- 设备树(四)linux内核总线booting-without-of.txt
- weblogic linux启动报错java.net.UnknownHostException
- 高并发下的 Nginx 优化方案
- 设备树(三)linux内核主线次顶层common-335x-evm.dts
- 关闭tomcat的access_log
- apache 浏览器缓存
- zabbix配置指南
- 设备树(二)linux内核顶层am335x-evm.dts
- 设备树(一)linux内核主线了解dts
- 理解多层分布式架构、剖析webservice、remoting技术
- Linux Mono安装步骤
- CentOS7.0 使用root登录桌面
- Linux socket 编程实例——简单易懂,太好了!
- Linux 开发环境搭建
- Bash 脚本的比较运算符
- hadoop 学习(1) hbase安装运行
- 搭建Nginx+Java环境(转)