• File Operations


    在刷题测试程序时,为了避免每次都手工输入,我们可以把输入数据保存在文件中;为了避免输出太长,我们将输出也写入文件中,方便与标准答案文件进行比较。

    文件使用一般有两种方法:输入输出重定向、fopen。

    • 重定向
      这种方法比较简单,只要在main()函数的开始加上:
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);

    就可以将标准I/O(键盘输入、屏幕输出)转为读写文件。

    万一比赛要求标准I/O,而你还想用文件操作来测试代码时,提交时切记删除重定向语句。

    为了避免你忘记这茬,可以如下处理:

    #define NATIVE
    #include <stdio.h>
    
    int main(int argc,char** argv)
    {
    #ifdef NATIVE
        freopen("input.txt","r",stdin);
        freopen("output.txt","w",stdout);
    #endif
    //your code here
    
    return 0;
    }

    这样子,本机测试时可以使用重定向;如果要求标准I/O,提交时只需删掉#define NATIVE即可。

    • fopen
      如果比赛要求使用文件读写,但禁止重定向方式,这时可以使用fopen方式:
    #include <stdio.h>
    
    int main(int argc,char** argv)
    {
        FILE *fin, *fout;
        fin = fopen("input.txt"."rb");
        fout = fopen("output.txt","wb");
    
        int a;
    
        //把scanf改为fscanf,把printf改为fprintf
        fscanf(fin,"%d",&a);
        fprintf(fout,"%d",a);
        //your code here
    
        fclose(fin);
        fclose(fout);
    
        return 0;
    }

    这时候,如果要求标准I/O,只需要:

    fin = stdin;
    fout = stdout;

    最后,简单说下文件比较(windows下):
    进入cmd,如果两个文件在同一目录:

    fc 1.txt 2.txt

    如果两个文件不在同一目录:

    fc "c:1.txt" "d:2.txt"

    可以使用fc /?查看fc命令的一些参数:
    这里写图片描述

  • 相关阅读:
    51 张图助你彻底掌握 HTTP
    Nginx从原理到实战
    vu3.0 + ts + swiper6 的问题
    使用 react-router-dom v5 查询query 参数的方法
    visual studio 2015配置SVN
    SVN使用教程总结
    C#与SAP进行数据交互
    shell csv/txt文件对比
    persto array_join(array_agg(),',')
    shell 拼接html table 发送邮件
  • 原文地址:https://www.cnblogs.com/EIMadrigal/p/9248203.html
Copyright © 2020-2023  润新知