2014-05-07 85 views
-3

我在Visual Studio 2013 Express for Desktop中編程C,當我使用getchar()時,它立即終止。getchar()立即返回

下面的代碼:

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h> 

int main() 
{ 
    int num1, num2; 
    printf("Enter first number: "); 
    scanf("%d", &num1); 
    printf("Enter second number: "); 
    scanf("%d", &num2); 
    printf("Result: %d\n", num1 + num2); 
    printf("Press any key to exit..."); 
    getchar(); 
} 

最後一個字符串打印完成後,程序退出不等待任何的按鍵,即使我用的getchar()。

應該用getchar()等待按鍵(字符輸入),然後繼續? 它爲什麼會自動繼續並退出程序,無需等待按鍵?

+1

'cos有一個字符仍然留在輸入緩衝區中。 –

+1

這個問題每天大約會出現在StackOverflow上。我會看看如果我能找到一些重複... –

+0

我認爲這是[使用getch()來保持命令提示符打開Visual C++ 2010 ](http://stackoverflow.com/questions/7502476/using -get-hold-command-prompt-open-visual-c-2010) – DOOM

回答

-1

解決方法是最後撥打getchar();兩次,或者使用fgets();來代替。

問題是,當你在控制檯上輸入一個字符時,你實際上每次都會輸入一個額外的換行符。

+0

非常感謝!我現在明白了。 – Travier