首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

VS2010 調試控制台程式一閃而過:缺少暫停語句導致

     編輯:程式設計綜合問答

問題現象

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;
}

方案二:VS 專案設置「啟動後不關閉控制台」

  1. 專案右鍵 Properties(屬性)
  2. Configuration Properties → Linker → System
  3. SubSystem 選擇 Console (/SUBSYSTEM:CONSOLE)
  4. Configuration Properties → Debugging
  5. 取消勾選 Close console window when debugging stops(若存在)

然後使用 **Ctrl+F5 (Start Without Debugging)** 運行,VS 會在結束時自動顯示「請按任意鍵繼續...」。

方案三:system("pause")(Windows 專用、不推薦)

system("pause");  // 需 #include  或 
return 0;

方案四:命令行手動運行

  1. 編譯生成 .exe
  2. 按 Win+R 輸入 cmd 開啟終端機
  3. cd 到 .exe 目錄,直接輸入程式名運行

此時控制台視窗屬於手動開啟,程式結束後不會自動關閉。

調試技巧補充

  • 在 main() 最後一行設置斷點(F9),按 F5 啟動偵錯,程式會在斷點暫停,可查看變數、調用堆疊
  • 使用 std::cerr 或 fprintf(stderr, ...) 輸出調試資訊,標準錯誤流無緩衝,即時顯示
  • VS 輸出視窗 (Ctrl+Alt+O) 可查看 OutputDebugString 輸出

採用方案一修改程式碼,或方案二調整專案屬性 + Ctrl+F5 運行,即可徹底解決「一閃而過」問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved