Visual Studio 2010 編譯運行 C/C++ 控制台程式,黑色視窗瞬間出現又消失,無法查看輸出結果。即使設置斷點,程式結束後視窗仍自動關閉。
控制台程式 main() 執行完畢返回,進程結束,Windows 自動關閉控制台視窗。VS **「啟動偵錯」 (F5)** 預設不在程式結束時自動暫停,**「不啟動偵錯」 (Ctrl+F5)** 會自動添加暫停提示,但若程式邏輯有誤提前退出,同樣會閃退。
// C++
#include
int main() {
// ... 業務邏輯
std::cout << "按 Enter 鍵退出...";
std::cin.ignore(std::numeric_limits::max(), '\n');
std::cin.get();
return 0;
}
// C
#include
int main() {
// ... 業務邏輯
printf("按 Enter 鍵退出...");
getchar(); // 讀取殘留換行符
getchar(); // 真正等待
return 0;
}
然後使用 **Ctrl+F5 (Start Without Debugging)** 運行,VS 會在結束時自動顯示「請按任意鍵繼續...」。
system("pause"); // 需 #include 或
return 0;
.exeWin+R 輸入 cmd 開啟終端機cd 到 .exe 目錄,直接輸入程式名運行此時控制台視窗屬於手動開啟,程式結束後不會自動關閉。
main() 最後一行設置斷點(F9),按 F5 啟動偵錯,程式會在斷點暫停,可查看變數、調用堆疊std::cerr 或 fprintf(stderr, ...) 輸出調試資訊,標準錯誤流無緩衝,即時顯示Ctrl+Alt+O) 可查看 OutputDebugString 輸出採用方案一修改程式碼,或方案二調整專案屬性 + Ctrl+F5 運行,即可徹底解決「一閃而過」問題。