当前位置:网站首页 > 技术博客 > 正文

c++freopen函数的用法



目录

相同和不同点

例子

fopen

freopen


freopen 和 fopen 都是C的标准库函数被包含于C标准库头文件<stdio.h>中。

fopen就是我们最熟悉的打开一个文件用于写入or读取

freopen 是打开一个文件,用于接收输入输出流的数据。

 

 
 

此时,用户在屏幕上的输入(cin>>a>>b;),就会写入a+b.in文件。

标准输出流(cout<<a+b)就会写入a+b.out文件。

上面的程序运行的结果是:

在这里插入图片描述

参考或摘取:

http://t.csdn.cn/e3OZH

程序交互生成关机脚本的例子:

(摘自:http://t.csdn.cn/BP6I7)

 

文件指针名,必须是FILE类型的指针变量;
文件名,被打开的文件名
使用文件方式,是文件的类型和操作要求,有如下几种:
r(read):只读;
w(write):只写;
a(append):追加;
t(text):文本文件,可省略;
b(binary):二进制文件。
+ :读和写
  打开方式由以上几种基本类型组合而成,注意:

r 打开文件,该文件必须存在,且只能从该文件读出;
w 打开文件只能想该文件写入。若文件不存在,则自动新建;若文件已存在,则删去原文件再新建
  这个函数的用法如下:

FILE *fp1,*fp2; //定义文件指针类型
fp1=fopen("input.in","r"); //用fopen函数以只读方式(r)打开输入文件input.in;
fp2=fopen("output.out","w");//用fopen函数以写入方式(w)打开输出文件output.out;

fclose(fp1);//关闭文件指针。
fclose(fp2);


  在启用fopen函数时,需要特定的函数fscanf,fprintf对文件操作;普通的scanf和printf依然能在命令行界面操作。

函数声明:

FILE * freopen(const char *filename, const char *mode,FILE *stream);
1
参数说明:

filename:要打开的文件名;
mode:文件打开的模式,和fopen中的模式(r/w)相同。
stream:文件指针,通常使用标准流文件(stdin/stdout/stderr)
使用方法:

fclose(stdin);
fclose(stdout);

  freopen()函数重定向了标准流,使其指向指定文件,因此不需要修改scanf和printf。

  确实很方便吧,不过还有个问题要解决。通过freopen我们把标准流重定向到了指定文件,那么如果我们想让一些信息输出到屏幕,该怎么做呢?

  fopen函数由fprintf和printf两个函数,分别输出到文件和控制台。而freopen函数,需要修改函数的filename参数,让标准流输出到控制台。而这个控制台设备文件的名字与操作系统相关。

DOS、Win系统:

freopen("CON","r",stdin);
freopen("CON","w",stdout);

Linux:

freopen("/dev/console","r",stdin);

  这样就能实现一部分需要的数据输出到文件,同时另一部分数据输出到控制台。这样让程序拥有一些简单的交互能力。

原文链接:https://blog.csdn.net/XavierDarkness/article/details/

版权声明


相关文章:

  • js事件方法2025-03-27 15:30:00
  • java 集合类框架的最佳实践有哪些?2025-03-27 15:30:00
  • knn和聚类2025-03-27 15:30:00
  • c线程的同步与异步2025-03-27 15:30:00
  • sqlmap安装失败是什么原因2025-03-27 15:30:00
  • 舅舅的妈妈我们叫什么2025-03-27 15:30:00
  • oracle awr是什么意思2025-03-27 15:30:00
  • oracle数据库rowid与rownum2025-03-27 15:30:00
  • cnn深度神经网络2025-03-27 15:30:00
  • 循环队列和顺序队列区别2025-03-27 15:30:00