zoukankan      html  css  js  c++  java
  • linux freopen函数

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

    有些需求需要我们不断的输入数据很庞大,如果我们安装常规方法不断地在终端输入值很麻烦(前提是输入的数据是固定的,并不会随程序的运行而改变),这个时候我们就可以调用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":

     1 #include <stdio.h>
     2 #include <iostream>
     3 
     4 using namespace std;
     5 
     6 int main()
     7 {
     8     int num = 0;
     9     int sum = 0;
    10 
    11     if(NULL == freopen("input.txt","r",stdin))
    12     {
    13         printf("open input.txt failed!
    ");
    14         return -1;
    15     }
    16     if(NULL == freopen("output.txt","w",stdout))
    17     {
    18         printf("open output.txt failed
    ");
    19         return -2;
    20     }
    21 
    22     while(scanf("%d",&num) != EOF)
    23     {
    24         sum = num * 2;
    25         printf("%d * 2 = %d
    ",num,sum);
    26     }
    27 
    28     fclose(stdin);
    29     fclose(stdout);
    30 
    31     return 0;
    32 }

      

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

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

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

  • 相关阅读:
    2020.8.20收获
    2020.8.19
    2020.8.21收获
    2020.8.24收获
    UIScrollView滑动动作结束的侦听函数
    iphone 自定义UISwitch
    总结SQLite不支持的SQL语法有哪些
    去除nsstring中的空格
    ObjectiveC中判断字符串是否包含其他字符串
    设置IPHONE顶部的状态栏的样式
  • 原文地址:https://www.cnblogs.com/jiangyibo/p/8669941.html
Copyright © 2011-2022 走看看