【问题标题】:Pressing enter in C input programm [duplicate]在C输入程序中按回车[重复]
【发布时间】:2017-01-12 11:47:51
【问题描述】:

我一直在尝试通过网站 http://www.cprogramming.com/ 自学 C。 我来到了需要输入数字的代码。

代码如下:

#include <stdio.h>

int main()
{
  int this_is_a_number;
  printf( "Please enter a number: " );
  scanf( "%d", &this_is_a_number );
  printf( "You entered %d", this_is_a_number );
  getchar();
  return 0;
}

但是,当我运行它并尝试在提示符中输入一个数字时,命令窗口就会关闭。任何帮助将不胜感激。

【问题讨论】:

  • c和c++不一样
  • 无法删除标签
  • 只需从终端运行程序,您就不需要搞乱“保持窗口打开”...
  • @KerrekSB,虽然您的说法是正确的,但这会立即导致稍作修改的问题为什么getchar() 不等待。那里没有任何收获......
  • @Gerhardh:我很高兴这是该网站的一次全面胜利,因为这样的问题将是精确且可搜索的。

标签: c input getchar


【解决方案1】:

scanf 读取数字,但将您输入的换行符留在输入流中。

所以getchar 会立即获取它,而不是等待额外的输入。

您可以向getchar 添加另一个呼叫。对于您的简单程序,这可能是最简单的解决方案。

【讨论】:

    【解决方案2】:

    使用另一个getchar(); 来消耗scanf() 调用留下的换行符;这样,第二个getchar();保持提示。

    getchar();
    getchar();
    ...
    

    通常,您不需要这个。但是,如果您正在运行 exe(通常是 Windows)并希望在结束时 wait(这里似乎就是这种情况),那么这个技巧就可以了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-23
      • 1970-01-01
      • 1970-01-01
      • 2012-10-03
      • 1970-01-01
      • 2018-04-05
      • 2020-10-13
      相关资源
      最近更新 更多