linux freopen函数
2024-10-09 05:21:19
编程之路刚刚开始,错误难免,希望大家能够指出。
有些需求需要我们不断的输入数据很庞大,如果我们安装常规方法不断地在终端输入值很麻烦(前提是输入的数据是固定的,并不会随程序的运行而改变),这个时候我们就可以调用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函数。
最新文章
- React JS快速开始手册
- WPF 4.0 DatePicker 快速录入
- 保留ip: Reserved IP addresses
- C#里WinForm开发中如何实现控件随窗体大小的改变而自动适应其改变(转)
- 【Unity3D】模仿制作“神庙逃亡”吃金币后金币飞出屏幕效果
- Android获取IMSI和IMEI
- 【转】【JavaScript】禁用backspace键的后退功能,但是可以删除文本内容
- 在TFS中通过程序动态创建Bug并感知Bug解决状态
- Python爬虫Scrapy(二)_入门案例
- openfire服务器+Spark搭建即时聊天系统 &; 阿里云的初步探索
- 借助Maven入手Spring Boot第一个程序
- ubuntu11.04安装nginx+php+mysql
- 建荣AX3298作为航拍启动流程
- 10.16JS日记
- .34-浅析webpack源码之事件流make(3)
- 记录Centos7搭建ftp服务器以及遇到的各种坑
- Centos编译Redis4.0.9源码过程记录
- Vuejs - 强大的指令系统
- Super Jumping! Jumping! Jumping!---hdu1087(动态规划)
- DEBUG命令详细说明