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

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

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

#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. Unity 官方 Demo: 2DPlatformer 的 SLua 版本。

    9月份时,趁着国庆阅兵的假期,将 Unity 官方 Demo: 2DPlatformer 移植了一个 SLua 版本,并放在了我的 GitHub 账号下:https://github.com/yauk ...

  2. params数据来源和参数传递的一点小理解

    今天是星期一,上次说的两个需求,解决了一个.在原来的页面增加了一个可以勾选的单选框用于完成,勾选对应的条件来渲染对应的页面,使用了简单的单选框radio_button来实现单选的提交,使用条件判断语句 ...

  3. Java中url传递中文参数取值乱码的解决方法

    java中URL参数中有中文值,传到服务端,在用request.getParameter()方法,得到的常常会是乱码,这将涉及到字符解码操作. 方法一: http://xxx.do?ptname=’我 ...

  4. fopen/fclose

    在操作文件之前要用fopen打开文件,操作完毕要用fclose关闭文件; 打开文件就是在操作系统中分配一些资源用于保存该文件的状态信息,并得到该文件的标示,以后用户程序就可以这个标志对文件做各种操作了 ...

  5. 1 weekend110的NN元数据管理机制 + NN工作机制 + DN工作原理

    第一天的笔记,是伪分布hadoop集群搭建, 后面是hadoop Ha的分布式集群搭建 第一天,是HDFS的shell操作 NN工作机制 里面是二进制 DN工作原理 上传完了之后,在hdfs的虚拟路径 ...

  6. 【转】[精华] 跟我一起写 Makefile

    陈皓 概述  —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,m ...

  7. sqlserver优化查询

    sql语句的优化分析   开门见山,问题所在 sql语句性能达不到你的要求,执行效率让你忍无可忍,一般会时下面几种情况. 网速不给力,不稳定. 服务器内存不够,或者SQL 被分配的内存不够. sql语 ...

  8. Yii2中request的使用方法

    1.普通的get和pst请求 $request = Yii::$app->request; $get = $request->get(); // 等同于: $get = $_GET; $i ...

  9. Java GC 概念摘要

    很长时间,我想Java的GC做一个小小的总结,他有没有时间.根据最近看了java paper向上java gc文章,我觉得好,读读.顺便说一下,总结下. java paper的GC文章地址,里面有非常 ...

  10. java 集合排序(转)

    Java API针对集合类型排序提供了两种支持:java.util.Collections.sort(java.util.List)java.util.Collections.sort(java.ut ...