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

C語言主控台程式結束暫停:getchar() 與 system("pause") 差異

     編輯:C 語言問答

現象:程式跑完視窗一閃而過

原因:IDE (如 Visual Studio、Code::Blocks) 啟動主控台子進程,進程結束後視窗自動關閉。

常見暫停方法

方法程式碼優點缺點
getchar()getchar();標準 C、跨平台若輸入緩衝區殘留換行需雙呼叫
system("pause")system("pause");Windows 專用、提示訊息友善非標準、效能差、安全風險
IDE 設定VS: 專案屬性 → Linker → System → SubSystem: Console (/SUBSYSTEM:CONSOLE) + 「Start without debugging」無侵入代碼依賴特定 IDE

正確使用 getchar()

int main()
{
    // ... 程式邏輯 ...
    printf("Press Enter to exit...");
    while (getchar() != '\n'); // 清空殘留換行
    getchar(); // 等待使用者按 Enter
    return 0;
}

為何放在 return 0; 之前?

getchar() 會阻塞等待輸入,放在程式邏輯之後、return 之前,確保使用者能看見輸出結果再按鍵退出。放在迴圈內或函數開頭會提前阻塞,導致邏輯無法執行。

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