[問題] 取代 system("pause") ?

看板C_and_CPP作者 (Cory)時間13年前 (2012/04/14 18:12), 編輯推噓10(10013)
留言23則, 14人參與, 最新討論串1/1
問題(Question): 我知道 systme("pause"); 是呼叫系統指令 然後 pause 是 Windows only 所以我想避開這種平台限制的東西 網路上看好像都是用 cin.get() 或 getchar() 代替 但是如果原先的 buffer 就有存其他資料 那單單這一句就沒用了 因為只會吃一個字元 完全沒暫停的效果 還有一種寫法 先全部清空 buffer 再去做 cin.get() 但是這樣好像也不太好 想請教各位高手 有沒有辦法寫一個 單純暫停的 暫停 ?? 不要太複雜的話... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.221.54

04/15 02:24, , 1F
前面加fflush(stdin)?
04/15 02:24, 1F

04/15 02:27, , 2F
printf("按下Ctrl-C結束程式\n");while(1);
04/15 02:27, 2F

04/15 02:41, , 3F
問題不在暫停,是你之後打算怎麼繼續...
04/15 02:41, 3F

04/15 02:46, , 4F
先把stdin的東西存到buffer,等那個繼續鍵
04/15 02:46, 4F

04/15 02:47, , 5F
繼續之後,程式要先處理buffer暫存的內容
04/15 02:47, 5F

04/15 05:05, , 6F
請按任意鍵繼續?
04/15 05:05, 6F

04/15 06:59, , 7F
getch()
04/15 06:59, 7F

04/15 08:10, , 8F
fflush(stdin)是VC的extension...
04/15 08:10, 8F

04/15 08:12, , 9F
fetch 也不在標準函式庫
04/15 08:12, 9F

04/15 08:13, , 10F
s/fetch/getch/
04/15 08:13, 10F

04/15 08:15, , 11F
改用VC或是codeblocks就好了
04/15 08:15, 11F

04/15 08:59, , 12F
寫個例外判斷系統看要跑什麼指令
04/15 08:59, 12F

04/15 09:21, , 13F
semaphore (誤
04/15 09:21, 13F

04/15 10:37, , 14F
你這種堅持沒有意義,須知道在什麼平台就用什麼指令。有輪子
04/15 10:37, 14F

04/15 10:37, , 15F
不用,自己去重做一個輪子,只能說時間太多了。
04/15 10:37, 15F

04/15 13:42, , 16F
sleep()看你要停幾秒
04/15 13:42, 16F

04/15 14:58, , 17F
while (getchar() != EOF); 停到程式中斷或出現 ctrl-z
04/15 14:58, 17F

04/15 14:59, , 18F
在受限於 C/C++ 標準函式庫的情況下,搞不出什麼花樣
04/15 14:59, 18F

04/15 15:02, , 19F
其實沒什麼用,文字介面愛用者,都是開終端機模擬之類的跑
04/15 15:02, 19F

04/15 15:02, , 20F
不愛用文字介面的,都等著你寫成 GUI 更不會期待
04/15 15:02, 20F

04/15 18:32, , 21F
while(1); 或 for(;;);
04/15 18:32, 21F

04/15 19:48, , 22F
用define來寫兩種呢?
04/15 19:48, 22F

04/15 20:46, , 23F
用二樓的阿
04/15 20:46, 23F
文章代碼(AID): #1FYRtoaM (C_and_CPP)