2014-05-07 89 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