Re: [分享] ACM測資方便方法
其實我最喜歡的方法是這樣子
因為 UVa 有提供 -DONLINE_JUDGE 的編譯選項
所以只要寫
int main() {
#ifndef ONLINE_JUDGE
freopen("100.in", "r",stdin);
freopen("100.out","w",stdout)
#endif
// ...other code
}
在本機測試就是用檔案I/O,送上去judge也不用修改任何一行code
※ 引述《diabloevagto (wi)》之銘言:
: 昨天再跟朋友聊天剛好提到acm題目都如何測試
: 他講了一個方法挺不錯的
: 給大家參考看看
: 首先假設我編譯出來的exe檔是
: D:\Dropbox\C++\ACM\10141\bin\Debug\10141.exe
: 然後要測試的資料都放在一個txt檔內
: D:\Dropbox\C++\ACM\10141\bin\Debug\aaa.txt
: 這兩個檔案我放在同一個資料夾底下
: 因為我懶的打路徑
: 接著開cmd檔案下命令
: D:\Dropbox\C++\ACM\10141\bin\Debug>10141.exe < aaa.txt
: 重點是在於那個<
: 這觀念我猜應該是資料流的意思
: 給大家參考看看吧
: 在檔案內一樣是用cin
: 這樣就不用一個一個key進去
: 也不需要用讀檔的方式了
--
「人生有很多個十年,但如果剛好是十八歲到二十八歲,那就是一輩子了。」
「我們常常高估十年後能做的事,卻忽略一年內能做的事」
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.45.105.118
※ 編輯: chchwy 來自: 114.45.105.118 (09/01 17:37)
→
09/01 17:55, , 1F
09/01 17:55, 1F
→
09/01 17:55, , 2F
09/01 17:55, 2F
→
09/01 18:02, , 3F
09/01 18:02, 3F
→
09/01 18:02, , 4F
09/01 18:02, 4F
我這樣寫就是不用設定也不用檢查,而且Win,Linux通吃阿
你去看UVa的送題頁面就有寫明編譯參數
C++ 4.1.2 - GNU C++ Compiler with options: -lm -lcrypt -O2 -pipe -DONLINE_JUDGE
仔細看,我用的是#ifndef 不是 #ifdef
只要被包在#ifndef ONLINE_JUDGE裡面的程式碼
送交的時候就不會被編進去
※ 編輯: chchwy 來自: 114.45.105.118 (09/01 18:30)
→
09/01 18:42, , 5F
09/01 18:42, 5F
→
09/01 18:42, , 6F
09/01 18:42, 6F
→
09/01 18:44, , 7F
09/01 18:44, 7F
→
09/01 18:45, , 8F
09/01 18:45, 8F
→
09/01 18:46, , 9F
09/01 18:46, 9F
推
09/04 02:59, , 10F
09/04 02:59, 10F
討論串 (同標題文章)