编程之路刚刚开始,错误难免,希望大家能够指出。

有些需求需要我们不断的输入数据很庞大,如果我们安装常规方法不断地在终端输入值很麻烦(前提是输入的数据是固定的,并不会随程序的运行而改变),这个时候我们就可以调用freopen函数来解决这个麻烦。

freopen一般都是将stdin和stdout重定向。

FILE * freopen ( const char * filename, const char * mode, FILE * stream )

filename: 要打开的文件名。

mode: 文件打开的模式,和fopen中的模式相同。

stream: 文件指针,通常使用标准流文件(stdin/stdout/stderr)。

返回值:成功,则返回一个文件指针;失败,返回NULL(一般不会使用它的返回值,但是建议判断它的结果,养成良好的习惯)。

例子:每次提供20个整数,分别计算出它们各自乘以2的积。

  1.创建文件"input.txt"和"output.txt"对应stdin和stdout。

  

  2.编写代码"test.cpp":

 #include <stdio.h>
#include <iostream> using namespace std; int main()
{
int num = ;
int sum = ; if(NULL == freopen("input.txt","r",stdin))
{
printf("open input.txt failed!\n");
return -;
}
if(NULL == freopen("output.txt","w",stdout))
{
printf("open output.txt failed\n");
return -;
} while(scanf("%d",&num) != EOF)
{
sum = num * ;
printf("%d * 2 = %d\n",num,sum);
} fclose(stdin);
fclose(stdout); return ;
}

  

  3.往"input.txt"文件内每行添加一个整数:

  4.g++ test.cpp  ./a.out

这个例子简单,但主要是说明一下什么样需求可能会用到freopen函数。

最新文章

  1. React JS快速开始手册
  2. WPF 4.0 DatePicker 快速录入
  3. 保留ip: Reserved IP addresses
  4. C#里WinForm开发中如何实现控件随窗体大小的改变而自动适应其改变(转)
  5. 【Unity3D】模仿制作“神庙逃亡”吃金币后金币飞出屏幕效果
  6. Android获取IMSI和IMEI
  7. 【转】【JavaScript】禁用backspace键的后退功能,但是可以删除文本内容
  8. 在TFS中通过程序动态创建Bug并感知Bug解决状态
  9. Python爬虫Scrapy(二)_入门案例
  10. openfire服务器+Spark搭建即时聊天系统 &amp; 阿里云的初步探索
  11. 借助Maven入手Spring Boot第一个程序
  12. ubuntu11.04安装nginx+php+mysql
  13. 建荣AX3298作为航拍启动流程
  14. 10.16JS日记
  15. .34-浅析webpack源码之事件流make(3)
  16. 记录Centos7搭建ftp服务器以及遇到的各种坑
  17. Centos编译Redis4.0.9源码过程记录
  18. Vuejs - 强大的指令系统
  19. Super Jumping! Jumping! Jumping!---hdu1087(动态规划)
  20. DEBUG命令详细说明

热门文章

  1. xadmin后台导出时gunicorn报错ascii
  2. DeepLearning4J
  3. caffe中全卷积层和全连接层训练参数如何确定
  4. python中的argparse模块(参数解析)
  5. springboot学习章节代码-spring基础
  6. vs2017 乱码
  7. 常见无线DOS攻击
  8. 2019-03-11-day009-函数定义
  9. python day03作业
  10. SQL注入之Sqli-labs系列第二十七关(过滤空格、注释符、union select)和第二十七A