大多数人代码中的ONLINE_JUDGE是什么?

时间:2019-06-07 07:21:15

标签: c++

大多数人在他们的代码中写这些。

这意味着什么?

#ifndef的用途是什么。

#ifndef ONLINE_JUDGE
   freopen("E://ADpan//in.in", "r", stdin);
   freopen("E://ADpan//out.out", "w", stdout);
#endif

2 个答案:

答案 0 :(得分:1)

一个粗略的Google搜索导致this post。总结一下:在一些在线编码竞赛中,预定义的输入被发送到stdin并有望在stdout上进行。在本地进行测试和开发时,有些人更喜欢破解其程序以从文件中读取,因此他们不必做

test_program < input | diff - expected_output

最后,ONLINE_JUDGE宏是在竞争环境中定义的,因此使用stdin / stdout,而本地编译将不具有该宏,因此可以从这些文件中读取。

答案 1 :(得分:0)

这行代码由在文本编辑器而不是 IDE 中编码的竞争程序员使用。默认情况下,在大多数在线评委(例如:codeforces 或 codechef)中提交代码时定义 ONLINE_JUDGE 常量。它帮助代码确定代码是在在线判断器上还是在本地系统机器上运行。这行代码用于在本地机器上运行时从文件而不是stdin中读写的代码,以及在在线判断中运行时分别从stdin和stdout中读写的代码。