【问题标题】:getchar() returns immediately [duplicate]getchar() 立即返回[重复]
【发布时间】:2014-05-07 12:06:27
【问题描述】:

我在 Visual Studio 2013 Express for Desktop 中编写 C 语言,当我使用 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() 是否应该等待按键(字符输入),然后继续? 为什么不用等待按键就自动继续退出程序?

【问题讨论】:

  • '因为输入缓冲区中还有一个字符。
  • 这个问题大约每天在 StackOverflow 上出现一次。我看看能不能找到一些重复的……
  • 我认为这是重复[使用 getch() 保持命令提示符打开 Visual C++ 2010 ](stackoverflow.com/questions/7502476/…)

标签: c getchar


【解决方案1】:

解决办法是最后调用getchar();两次,或者改用fgets();

问题是,当您在控制台上输入一个字符时,实际上您每次都输入一个额外的换行符。

【讨论】:

  • 非常感谢!我现在明白了。
猜你喜欢
  • 2020-08-09
  • 1970-01-01
  • 1970-01-01
  • 2021-04-29
  • 2010-10-14
  • 1970-01-01
  • 1970-01-01
  • 2018-02-11
  • 2011-10-16
相关资源
最近更新 更多