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

C語言控制台程式一閃而過解決:getchar() 與系統暫停

     編輯:C 語言問答

現象與原因

雙擊執行 .exe 檔案,控制台視窗瞬間彈出又關閉,無法看到輸出結果。

原因:程式執行結束,進程終止,作業系統自動關閉控制台視窗。IDE 中運行通常會自動暫停,但直接執行不會。

解決方案

方法一:標準 C 方式(跨平台)

#include 

int main() {
    // 你的代碼...
    printf("Hello World!\n");
    
    printf("按 Enter 鍵退出...");
    while (getchar() != '\n');  // 清空輸入緩衝區
    getchar();  // 等待用戶按鍵
    return 0;
}

方法二:Windows 特有

#include 
system("pause");  // 需 stdlib.h,僅 Windows 有效

方法三:Visual Studio 專案設定

  • 專案 → 屬性 → 連結器 → 系統 → 子系統:主控台 (/SUBSYSTEM:CONSOLE)
  • 或:偵錯 → 開始執行 (不偵錯) Ctrl+F5,VS 會自動在結束時暫停

方法四:命令列執行

cmd 中輸入:
myprogram.exe
// 視窗不會關閉,可直接看輸出

常見誤區

在 scanf 後直接用 getchar() 會讀取殘留的換行符,導致無暫停效果。必須先清空緩衝區:

int c;
while ((c = getchar()) != '\n' && c != EOF);  // 清空緩衝區
getchar();  // 真正等待
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved