我使用sublime text 3进行竞争性编程。我更喜欢C ++语言。由于我必须一次又一次地运行我的程序以检查输出,因此更容易将输入写入文件并从那里读取输入。为此我总是在我的程序上写一些额外的行来读取文件,并在提交我的解决方案之前注释掉这些行。你能建议任何摆脱这个的方法吗?我希望有一种方法可以改变我的程序从文件而不是标准输入中获取输入的默认输入源。
答案 0 :(得分:1)
您可以使用freopen
编写条件代码(也适用于C ++)。 CodeChef支持的一种方法是
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
#endif
. . .
cin >> something; // This will be read from 'in.txt' if ONLINE_JUDGE is not defined
宏ONLINE_JUDGE
可能不同,但freopen
是更改输入流源的方法。
编辑:要在sublime text 3中实现此目的,请编写自定义构建系统(Sublime text 3 - compile program and run in terminal)并从命令行使用I / O重定向器,例如
g++ -Wall -o code code.cpp
./code < in.txt
这将从文件中读取输入,就好像它是标准输入。
希望它有所帮助。