首頁 資料庫 mysql教程 OJ 调试技巧:VS2010 中 通过设置编译参数定义宏,无需修改源文

OJ 调试技巧:VS2010 中 通过设置编译参数定义宏,无需修改源文

Jun 07, 2016 pm 03:30 PM
vs2010 參數 定義 技巧 編譯 設定 偵錯 透過

一般OJ都是使用 标准输入输出,这样在本地调试时很不方便,可以通过下面的方法 重定向标准输入输出到文件: #ifdef LOCAL_DEBUG freopen( in.txt , r , stdin); # endif 这样做有一个问题就是 如果在代码中定义宏LOCAL_DEBUG,则在提交时必须取消其定义,这

一般OJ都是使用 标准输入输出,这样在本地调试时很不方便,可以通过下面的方法 重定向标准输入输出到文件:

<span>#ifdef LOCAL_DEBUG</span>
freopen(<span>"in.txt"</span>, <span>"r"</span>, stdin);
<span>#<span>endif</span></span>
登入後複製

这样做有一个问题就是 如果在代码中定义宏LOCAL_DEBUG,则在提交时必须取消其定义,这样改来改去很麻烦,有没有更方便的方法呢?请看下文。

上面的代码说明只要定义了 宏 LOCAL_DEBUG,就将标准输入重定向到文件 in.txt。在VS2010中,宏 LOCAL_DEBUG 可以通过设置编译参数来定义,这样在本地调试时使用文件输入,而且 无需修改源文件即可直接提交 ,在OJ 服务器中由于没有定义 宏 LOCAL_DEBUG,所以标准输入并没有被重定向,perfect!

方法如下:

如项目名 为 test 。

项目-> test 属性(最下面)-> 配置属性 -> C/C++ -> 命令行 。在下面的 “其他选项” 中 输入 “ /D LOCAL_DEBUG ”,再点 右下角 “ 应用 ”。OK !

OJ 调试技巧:VS2010 中 通过设置编译参数定义宏,无需修改源文

给个程序测试一下,in.txt 文件放在 test 项目根目录下。

<span>#include <iostream></iostream></span>
<span>#include <cstdio></cstdio></span>
<span>#include <cstdlib></cstdlib></span>

<span>using</span> <span>namespace</span> <span>std</span>;

<span>int</span> main()
{
<span>#ifdef LOCAL_DEBUG</span>
freopen(<span>"in.txt"</span>, <span>"r"</span>, stdin);
<span>#endif</span>

<span>int</span> n;
<span>cin</span> >> n;
<span>cout</span> return <span>0</span>;
}
登入後複製
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

C++ 函式偵錯詳解:如何偵錯多執行緒函數中的問題? C++ 函式偵錯詳解:如何偵錯多執行緒函數中的問題? May 02, 2024 pm 04:15 PM

C++多執行緒偵錯可使用GDB:1.啟用偵錯資訊編譯;2.設定斷點;3.使用infothreads查看執行緒;4.用thread切換執行緒;5.使用next、stepi、locals調試。實戰案例調試死鎖:1.使用threadapplyallbt列印堆疊;2.檢查執行緒狀態;3.單步執行主執行緒;4.使用條件變數協調存取來解決死鎖。

如何使用LeakSanitizer調試C++記憶體洩漏? 如何使用LeakSanitizer調試C++記憶體洩漏? Jun 02, 2024 pm 09:46 PM

如何使用LeakSanitizer調試C++記憶體洩漏?安裝LeakSanitizer。透過編譯標誌啟用LeakSanitizer。運行應用程式並分析LeakSanitizer報告。識別記憶體分配類型和分配位置。修復記憶體洩漏,確保釋放所有動態分配的記憶體。

請勿打擾模式在iPhone中不起作用:修復 請勿打擾模式在iPhone中不起作用:修復 Apr 24, 2024 pm 04:50 PM

即使在「請勿打擾」模式下接聽電話也可能是一種非常煩人的體驗。顧名思義,請勿打擾模式可關閉來自郵件、訊息等的所有來電通知和警報。您可以按照這些解決方案集進行修復。修復1–啟用對焦模式在手機上啟用對焦模式。步驟1–從頂部向下滑動以存取控制中心。步驟2–接下來,在手機上啟用「對焦模式」。專注模式可在手機上啟用「請勿打擾」模式。它不會讓您的手機上出現任何來電提醒。修復2–更改對焦模式設定如果對焦模式設定中存在一些問題,則應進行修復。步驟1–打開您的iPhone設定視窗。步驟2–接下來,開啟「對焦」模式設

golang 函數調試和分析的捷徑 golang 函數調試和分析的捷徑 May 06, 2024 pm 10:42 PM

本文介紹了Go函數調試和分析的捷徑,包括:內建偵錯器dlv,用於暫停執行、檢查變數、設定斷點。日誌記錄,使用log包記錄訊息,在調試時查看。效能分析工具pprof,產生呼叫圖並分析效能,使用gotoolpprof分析資料。實戰案例:透過pprof分析記憶體洩漏,產生呼叫圖顯示導致洩漏的函數。

Java 並發程式設計如何進行並發測試與除錯? Java 並發程式設計如何進行並發測試與除錯? May 09, 2024 am 09:33 AM

並發測試和調試Java並發程式設計中的並發測試和調試至關重要,以下技術可供使用:並發測試:單元測試:隔離並測試單一並發任務。整合測試:測試多個並發任務之間的交互作用。負載測試:評估應用程式在高負載下的效能和可擴展性。並發調試:斷點:暫停線程執行並檢查變數或執行程式碼。日誌記錄:記錄線程事件和狀態。堆疊追蹤:識別異常源頭。視覺化工具:監視執行緒活動和資源使用情況。

如何調試 PHP 非同步程式碼 如何調試 PHP 非同步程式碼 May 31, 2024 am 09:08 AM

調試PHP非同步程式碼的工具包括:Psalm:靜態分析工具,可發現潛在錯誤。 ParallelLint:檢查非同步程式碼並提供建議的工具。 Xdebug:用於偵錯PHP應用程式的擴展,可透過啟用會話並逐步執行程式碼來偵錯。其他技巧還包括使用日誌記錄、斷言、局部運行程式碼和編寫單元測試。

Java函數中遞歸呼叫的調試技巧有哪些? Java函數中遞歸呼叫的調試技巧有哪些? May 05, 2024 am 10:48 AM

以下技術可用於偵錯遞歸函數:檢查堆疊追蹤設定調試點檢查基本情況是否正確實現計算遞歸呼叫的次數可視化遞歸堆疊

vivox200ultra參數及價格詳情 vivox200ultra參數及價格詳情 Jun 28, 2024 pm 01:23 PM

vivox200ultra最新官方消息曝光了vivox200ultra參數及價格詳情,據悉vivox200ultra將搭載10倍潛望超長焦,價格大概在6999元起,可見其在拍照性能上佔據了絕對的優勢地位,下面是vivox200ultra參數及價格詳情,快來看看。一、vivox200ultra參數配置詳情1、vivox200ultra渲染圖由vivo X200 Ultra渲染圖來看,該機正面採用了無邊框的全面屏設計,整個手機正面的視覺效果可以說非常的無敵。 2、vivox200ultra有黑鷹框架

See all articles