控制台程序輸出結果後瞬間關閉,用戶來不及查看。
.exe 無宿主進程保持窗口。scanf/cin 讀取後緩衝區殘留 \n,單次 getchar() 會讀走換行符直接返回。#include <stdio.h>
#include <stdlib.h>
int main() {
// 業務邏輯...
printf("結果:%d\n", result);
// 關鍵兩行
printf("按任意鍵退出...\n");
getchar(); // 吃掉殘留的 \n
getchar(); // 真正等待用戶按鍵
return 0;
}
#ifdef _WIN32
system("pause"); // Windows 專用,最直觀
#else
printf("Press Enter to exit...");
while (getchar() != '\n'); // 清空緩衝區
getchar();
#endif
Console (/SUBSYSTEM:CONSOLE)。「雙重
getchar()」是 C 課本級標準答案,兼容所有編譯器、無依賴、零副作用。發布給非技術用戶時,建議改用system("pause")提示更友好。