2010-07-23 51 views
1

我讀過system("pause")是緩慢的,不建議使用。
有沒有我可以用來代替的功能?
我試過getchar(),但是如果我之前有一個scanf的調用,它根本不會等待其他輸入,只有當我把其他getchar()置於其下時(但我認爲這不是一個好的解決方案)。C++更換系統(「暫停」)電話

編輯:我正在使用Microsoft Visual Studio 2010

+0

你想達到什麼目的? 'getchar()'讀取與暫停不同的輸入。你需要暫停些什麼? – 2010-07-23 22:50:14

+13

抱怨「暫停」呼叫很慢,這讓人感到有趣。 – 2010-07-23 22:52:25

+0

http://stackoverflow.com/questions/2529617/how-to-stop-c-console-application-from-exiting-immediately http://stackoverflow.com/questions/2725823/how-do-i-get-屏幕到暫停關閉http://stackoverflow.com/questions/1107705/systempause-why-is-it-wrong – 2010-07-23 22:55:01

回答

2

我試過的getchar(),但如果我之前有一個 scanf函數調用,它根本不 等待的其他輸入

請確保在調用之前清空輸入緩衝區它;否則它可能會抓取已經存在於緩衝區中的鍵(例如,換行符等)。

0

您是否嘗試過?

  • sleep(int time);
  • getch();
0

_getch()來自conio.h應該證明是一個適當的替代。

0

system("pause")system("pause")調用由某些IDE插入自動生成的代碼中(Bloodshed Dev C++想起來),因爲從IDE運行代碼時彈出的控制檯窗口是暫時的,只要程序完成就會消失。

解決方案是不從IDE運行代碼 - 而是打開一個真正的控制檯窗口,一旦終止,您仍然可以讀取程序的輸出。