加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

对付OJ的懒人C++写法

发布时间:2020-12-15 04:50:00 所属栏目:百科 来源:网络整理
导读:先贴写法 #include using namespace std; int body(void) { //真代码 return 0; } int main(void) { #pragma warning(disable:4996) FILE* fp = freopen("1.txt","r",stdin); //重定向stdin从文件读取输入 body(); fflush(fp);//将输出缓冲区清空 freopen("C

先贴写法

#include

using namespace std;

int body(void)

{

//真代码

return 0;

}

int main(void)

{

#pragma warning(disable:4996)

FILE* fp = freopen("1.txt","r",stdin); //重定向stdin从文件读取输入

body();

fflush(fp);//将输出缓冲区清空

freopen("CON",stdin); //重定向输出到控制台

system("pause");

return 0;

}

文件读取输入

在线评价代码(online judge,OJ)一般会给出测试用数据和结果,可以用来输入到本地程序里。问题是,输入太麻烦了。上述的主程序第一行内重定向文件到输入,所以只要把样例复制到代码目录下的“1.txt”就可以了,每次运行自动读取输入。pragma是对付visual studio用的,不然警告4996会报错。之后的重定向回键盘是为了下面的pause可以完成“按任意键退出”。

命令行窗口闪烁?

作业调试要看窗口的输出是不是和答案一样。如果命令行窗口闪烁,就要写一行getchar()或者system(“pause”)来完成“按任意键退出”。但是有些OJ运行这些代码,会出编译错误。所以一起写在这里。

怎么交作业呢?

我的OJ只给一个文本框叫我进去,我的方法就是把body()及以上的所有东西拷贝到OJ输入去,然后把body改名成main。如果要提交文件就重新建一个cpp文件,也是拷贝改名。这里其实还是有点麻烦的,能不能把这事也自动化了?

这是我的csdn第一篇文章。这些写作用的宏可真费劲。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读