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

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

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

#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


												

OJ的文件流操作的更多相关文章

  1. delphi 基础之三 文件流操作

    文件流操作 Delphi操作流文件:什么是流?流,简单来说就是建立在面向对象基础上的一种抽象的处理数据的工具.在流中,定义了一些处理数据的基本操作,如读取数据,写入数据等,程序员是对流进行所有操作的, ...

  2. (C/C++学习)2.C语言中文件流操作基本函数总结

    函数所在头文件:stdio.h 说明:前半部分主要为对各个文件流操作函数的例举,后半部分着重于上机运行分析.文中部分引用自王桂林老师的C/C++课件. 1.FIELE *fopen(const cha ...

  3. c++ ofstream & ifstream文件流操作

    ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间; //ofstream & ifstream inherit from istream class ...

  4. c#基础语言编程-文件流操作

    引言 在System.IO 命名空间下提供了一系列的类,我们可以通过相应的类进行文件.目录.数据流的操作. 1.File类:提供用于创建.复制.删除.移动和打开文件的静态方法.File类 2.File ...

  5. C++中输入输出流及文件流操作笔记

    1.流的控制 iomanip          在使用格式化I/O时应包含此头文件.    stdiostream   用于混合使用C和C + +的I/O机制时,例如想将C程序转变为C++程序 2.类 ...

  6. C++文件编程(文件流操作)

    给出了比较常见的文件操作,包括二进制文件操作.代码如下: #include<iostream> #include<cstdio> #include<cstring> ...

  7. (十四)QFile操作,QByteArray,文件流操作,QTextStream,QDataStream,QFileInfo, QIODevice

    QFile f 1.readall #include "widget.h" #include "ui_widget.h" #include <QFileD ...

  8. C++学习7-面向对象编程基础(多态性与虚函数、 IO文件流操作)

    多态 多态性是指对不同类的对象发出相同的消息将返回不同的行为,消息主要是指类的成员函数的调用,不同的行为是指不同的实现: 函数重载 函数重载是多态性的一种简单形式,它是指允许在相同的作用域内,相同的函 ...

  9. C++中文件流操作

    一.C++中流和流操作符 C++中把数据之间的传输操作称为流,流既可以表示数据从内存传送到某个载体或设备中,即输出流,也可以表示数据从某个载体或设备传送到内存缓冲区变量中,即输入流.C++输入输出除了 ...

随机推荐

  1. JS链接页面

    window.location.href = "index.php?op=xx&extend_op=xxc" 这样是在本页打开链接 window.open("ht ...

  2. JavaScript高级程序设计51.pdf

    (续上篇) 模拟鼠标事件 var btn=document.getElementById("myBtn"); //创建事件对象 var event=document.createE ...

  3. 《神经网络和深度学习》系列文章三:sigmoid神经元

    出处: Michael Nielsen的<Neural Network and Deep Leraning>,点击末尾“阅读原文”即可查看英文原文. 本节译者:哈工大SCIR硕士生 徐伟 ...

  4. Linux后门入侵检测工具,附bash漏洞解决方法[转载]

    转自:http://blog.jobbole.com/77663/ 官网 ClamAV杀毒软件介绍 ClamAV是一个在命令行下查毒软件,因为它不将杀毒作为主要功能,默认只能查出您计算机内的病毒,但是 ...

  5. 设置myeclipse自动生成的author等注释

    一.window->preference->java->code    styple->code Template 当你选择到这部的时候就会看见右侧有一个框显示出code这个选 ...

  6. Python调用C可执行程序(subprocess) 分类: python 服务器搭建 C/C++ shell 2015-04-13 21:03 87人阅读 评论(0) 收藏

    从Python 2.4开始,Python引入subprocess模块来管理子进程,以取代一些旧模块的方法:如 os.system.os.spawn.os.popen.popen2.commands. ...

  7. OpenJDK和Sun/OracleJDK 区别 与联系

    首先要先明确之间,以及OpenJDK 6.OpenJDK 7.OpenJDK 7u和OpenJDK 8等项目之间是什么关系,这有助于确定接下来编译要使用的JDK版本和源码分支.从前面介绍的Java发展 ...

  8. CentOS6.4下使用默认的文档查看器打开PDF文档乱码的解决方案

     最近在CentOS6.4下使用其默认的文档查看器打开PDF文档时出现乱码的方块,有两种方法可以解决.    方法一:修改/etc/fonts/conf.d/49-sansserif.conf文件,如 ...

  9. 为什么DropDownList的SelectedIndexChanged事件触发不了

    写的还行,转来大家看看 为什么DropDownList的SelectedIndexChanged事件触发不了? 为什么设置了DropDownList的AutoPostBack="True&q ...

  10. PureMVC(JS版)源码解析(十二):Facade类

    MVC设计模式的核心元素在PureMVC中体现为Model类.View类和Controller类.为了简化程序开发,PureMVC应用Facade模式.    Facade是Model\View\Co ...