zoukankan      html  css  js  c++  java
  • OJ的文件流操作

    我们刷题的时候除了编码外,测试也是非常重要的,当测试样例比较小的时候,我们完全可以手打,但是当测试样例比较大时候,我们就抓狂了~

    相信不少人都知道利用文件流,但是应该还有新手跟我一样,一遍又一遍地输入测试样例~

    其实很简单,就两句代码。

    #include<cstdio> //包含头文件,c语言的就是stdio.h
    
    freopen("in.txt","r",stdin);//在main 函数最开始加入,在当前工程下创建in.txt,之后加入数据
    
    fclose(stdin);//在程序return 0前加入。
    
    

    当然,如果纯粹是上面的代码,还是很琐碎,需要我们每次提交时候注释掉……

    为了方便大家,很多OJ都使用ONLINE_JUDGE宏。

    有就是我们这样就可以,在自己测试后,直接提交。

    #include<iostream>
    #include<cstdio>
    using namespace std;
    
    int main(){
        #ifndef ONLINE_JUDGE
        freopen("in.txt","r",stdin);
        #endif
        
    
        #ifndef  ONLINE_JUDGE
        fclose(stdin);
        #endif
        
        return 0;
    
    }

    当然,如果你跟我一样是使用linux+codeblock来写代码的话,我这里还有一个shell脚本,可以自动生成一些每次都必写的东西。

    其实我觉得用vim是很好的,但是哎,真的没有IDE,写代码很懊恼……

    当然,我写shell是新手,所以大神不要见怪。。

    当然,注释断,如果觉得没用就直接删掉吧。

    这个是cpp的。

    #!/bin/sh
    #vi /usr/share/codeblocks/templates/wizard/console/cpp
    Curtime=`date "+%Y-%m-%d "`
    echo '/*******************************************************************************/  
    /* OS           : 3.2.0-58-generic #88-Ubuntu SMP Tue Dec 3 UTC 2013 GNU/Linux 
     * Compiler     : g++ (GCC)  4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) 
     * Encoding     : UTF8 
     * Date         :' > /usr/share/codeblocks/templates/wizard/console/cpp/main.cpp $Curtime >> /usr/share/codeblocks/templates/wizard/console/cpp/main.cpp
    echo ' * All Rights Reserved XXX.
    *****************************************************************************/
    /* Description: *************************************************************** 
    *****************************************************************************/
    /* Analysis: ****************************************************************** 
    *****************************************************************************/
    /*****************************************************************************/  
    ' >> /usr/share/codeblocks/templates/wizard/console/cpp/main.cpp
    echo '#include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    
    int main(){
        #ifndef ONLINE_JUDGE
        freopen("in.txt","r",stdin);
        #endif
        
    
        #ifndef  ONLINE_JUDGE
        fclose(stdin);
        #endif
        
        return 0;
    
    }
    
    '>> /usr/share/codeblocks/templates/wizard/console/cpp/main.cpp
    
    echo 'cpp.sh'
    exit  

    这个是C的。

    #!/bin/sh
    #vi /usr/share/codeblocks/templates/wizard/console/cpp
    Curtime=`date "+%Y-%m-%d "`
    echo '/*******************************************************************************/  
    /* OS           : 3.2.0-58-generic #88-Ubuntu SMP Tue Dec 3 UTC 2013 GNU/Linux 
     * Compiler     : GCC  4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) 
     * Encoding     : UTF8 
     * Date         :' > /usr/share/codeblocks/templates/wizard/console/c/main.c $Curtime >> /usr/share/codeblocks/templates/wizard/console/c/main.c
    echo ' * All Rights Reserved by yaolong.
    *****************************************************************************/
    /* Description: *************************************************************** 
    *****************************************************************************/
    /* Analysis: ****************************************************************** 
    *****************************************************************************/
    /*****************************************************************************/  
    ' >> /usr/share/codeblocks/templates/wizard/console/c/main.c
    echo '
    
    #include <stdio.h>  
    #include <string.h>
    
    int main(){
        #ifndef ONLINE_JUDGE
        freopen("in.txt","r",stdin);
        #endif
        
    
        #ifndef  ONLINE_JUDGE
        fclose(stdin);
        #endif
    
    
    
         return 0;
    }
    '>> /usr/share/codeblocks/templates/wizard/console/c/main.c
    echo 'c.sh'
    
    exit  
    


    
    
    
    
    
  • 相关阅读:
    扩充Visual Studio 功能
    如何分层啊?
    DirectXInput
    关于分享
    消息机制
    C# 开启一个新进程,IE,打开一个URL,第一次总失败,刷新一下就好了
    远程调试IIS服务器的ASP.NET2.0网站
    IIS 用户 NT AUTHORITY\NETWORK SERVICE 登录失败解决方法
    SharePoint 2010微软Technet讲座第一讲笔记(2011年3月9日发布)
    IIS 未能加载文件或程序集 system.web.extensions解决方法
  • 原文地址:https://www.cnblogs.com/dengyaolong/p/3697216.html
Copyright © 2011-2022 走看看