在竞争编程中,大多数时候我们需要输入输入来手动检查我们的代码。但是,如果我们遇到诸如图形,字符串或输入数据的大量输入之类的问题,将变得很麻烦,因为它肯定会超时,或者键入错误数据的机会将会增加。
通过简单地将测试用例保存到指定文件中所需位置的简单位置,我们可以轻松解决问题。这些在Facebook Hackercup , Google Codejam等比赛中很有用。这些竞赛没有提供像在线裁判那样的环境,而是要求您上传输入和输出文件。
对于输入/输出,我们基本上使用这两种类型的文件访问模式,即
- “ r”:表示已读,因为它打开文件进行输入操作,但该文件必须存在于指定位置。
- “ w”:表示写操作,因为它为输出操作创建了一个空文件。如果已经存在同名文件,则其内容将被丢弃,并且该文件将被视为新的空文件。
C / C++
在C / C++中,我们可以将freopen用于标准输入和输出。该函数的语法为:-
FILE * freopen(const char * filename, const char * mode, FILE * stream );
- 文件名:它是指我们要打开的文件的名称。
- 模式:以上讨论。
- stream:指向FILE对象的指针,该对象标识要重新打开的流。
我们也可以使用符号常量ONLINE_JUDGE进行调试。由于大多数在线法官都在执行我们的代码之前,在命令行末尾添加此标志。例如在C++ 11中,它将被编译为
-std = c++0x -O2 -static -s -lm -DONLINE_JUDGE
因此,我们可以通过使用C预处理程序指令来利用这一点。
// Below is C/C++ code for input/output
#include
int main()
{
#ifndef ONLINE_JUDGE
// For getting input from input.txt file
freopen("input.txt", "r", stdin);
// Printing the Output to output.txt file
freopen("output.txt", "w", stdout);
#endif
return 0;
}
Java
在Java,我们可以将BufferedReader类用于快速Input,将PrintWriter类用于对输出进行格式化表示,以及FileReader和FileWriter类。
- FileReader(String filename):此构造函数创建一个新的FileReader,并指示解析器从该目录中读取文件。该文件必须存在于该指定位置。
- FileWriter(String fileName):此构造函数创建一个FileWriter对象,该对象位于指定位置。
// Java program For handling Input/Output
import java.io.*;
class Main
{
public static void main(String[] args) throws IOException
{
// BufferedReader Class for Fast buffer Input
BufferedReader br = new BufferedReader(
new FileReader("input.txt"));
// PrintWriter class prints formatted representations
// of objects to a text-output stream.
PrintWriter pw=new PrintWriter(new
BufferedWriter(new FileWriter("output.txt")));
// Your code goes Here
pw.flush();
}
}
// Thanks to Saurabh Kumar Prajapati for providing this java Code
PYTHON
在Python,我们首先导入模块sys(system),然后使用open()函数返回文件对象,该函数通常与两个参数一起使用:open(filename,mode)。
- 第一个参数是包含文件名的字符串。
- 第二个参数是另一个字符串(模式),其中包含一些描述文件使用方式的字符。
# Below is Pythone code for input/output
import sys
# For getting input from input.txt file
sys.stdin = open('input.txt', 'r')
# Printing the Output to output.txt file
sys.stdout = open('output.txt', 'w')
如果您希望与行业专家一起参加现场课程,请参阅《 Geeks现场课程》和《 Geeks现场课程美国》。