freopen()——重定向标准输入输出流
来源:互联网 发布:java和python大数据 编辑:程序博客网 时间:2024/05/22 15:02
freopen()——重定向标准输入输出流
头文件:stdio.h
函数原型:FILE * freopen(const char *filename , const char *type , FILE *stream);
例:
freopen(“in.txt”,”r”,stdin);freopen(“out.txt”,”w”,stdout);
参数说明:
filename: 文件名,用于存储输入输出的自定义文件名。例:"debug\\in.txt" ,可以是路径。
type: 文件打开的模式。和fopen中的模式(如r-只读, w-写)相同。
stream: 一个文件,通常使用标准流文件。
(这里的流不是C++中的概念,C++中的流是指对象,广义的流是指默认输入输出设备。在unix/linux系统中,所有东西都可以看成文件,所以默认输入输出设备也可以看成一个文件。
标准流文件具体是指stdin、stdout和stderr。
其中stdin是标准输入流,默认为键盘;stdout是标准输出流,默认为屏幕;stderr是标准错误流,一般把屏幕设为默认。)
返回值:如果成功则返回该指向该stream 的指针,否则为NULL。
Ps:
FILE *fp;fp = freopen(“in.txt”,”r”,stdin);if (fp == NULL) //可以用这种形式来判断与文件的连接是否建立成功cout<<”Open error!”<<endl;
功能:
实现重定向,把预定义的标准流文件定向到由path指定的文件中。
例如默认的标准输入流(stdin)是指向键盘,现在可以利用freopen()函数让他重定向,指向为一个文件。
这样本来从键盘输入的数据就可以从文件中读入了。
使用举例:
1 #include <stdio.h> 2 3 #include <iostream> 4 5 using namespace std; 6 7 8 9 int main()10 11 {12 13 FILE *fp; 14 15 fp = freopen("in.txt","r",stdin); //freopen() 的返回值,如果与文件连接建立失败,返回NULL16 17 if(fp!=NULL){ //与文件连接建立成功18 19 int a;20 21 cin>>a; //从文件中读入数据22 23 cout<<a<<endl; //在屏幕上显示数据24 25 }26 27 else //建立失败28 29 cout<<"Open error!"<<endl;30 31 return 0;32 33 }
详解:
这个函数的关键是对标准输入输出流文件进行重定义。
标准输入输出流文件包括 stdin 、stdou 、stderr。
那么“流”是什么呢?
流是一个文件。它包含了对设备的描述,操作系统可以通过它对设备进行操作。可以说,他是抽象化出来的物理设备,以文件的形式展现。例如,标准输入流stdin就代表了键盘,标准输出流stdout代表了屏幕。
再抽象化一点说,“流”相当于一个桥梁,它是系统与键盘屏幕等输入输出设备交流的渠道。例如,标准输入流stdin,它一端是键盘,另一端是键盘缓冲区,数据从物理的键盘通过stdin这座桥梁传送到了缓冲区里。电脑就可以对数据进行操作了。
而freopen ()的作用就是重定向这座桥梁(“流”)。将它的一端指向为另一个文件。这样就修改了数据的导向,原来数据可能从键盘中读入,现在可能变为了从文件中读入。
Freecode : www.cnblogs.com/yym2013
- freopen()——重定向标准输入输出流
- 使用freopen重定向输入输出流
- 不同语言中的标准输入输出重定向(freopen)
- freopen函数 输入输出重定向
- 标准输入输出重定向
- 标准输入输出重定向
- Java重定向标准输入输出流I/O(理解)
- java IO流(四)--重定向标准输入输出
- Java 重定向标准输入输出流
- 利用管道重定向标准输入输出流
- 趣学 C 语言(十三)—— 标准输入输出重定向
- linux 标准输入输出重定向
- java标准输入输出重定向
- cgi标准输入输出重定向
- C++标准输入输出重定向
- java重定向标准输入输出
- 标准输入输出和重定向输入输出
- 利用freopen函数重定向输入输出,辅助程序调试
- 未来的计算机视觉——增强现实技术
- python Base64编码
- 烟大 Contest1024 - 《挑战编程》第一章:入门 Problem G: Check The Check
- 烟大 Contest1025 - 《挑战编程》第二章:数据结构 Problem A: Jolly Jumpers
- 【资源页】(文章、工具等)
- freopen()——重定向标准输入输出流
- 数据结构 —— 栈和队列
- STL —— STL六大组件
- 数据结构 —— 递归和树
- 杭电 2041 超级楼梯
- 杭电 2044 一只小蜜蜂...
- 杭电 2050 折线分割平面
- 杭电 1018 Big Number
- 烟大 2238: 括号匹配(栈和队列)