【问题标题】:no int input from keyboard c没有来自键盘 c 的 int 输入
【发布时间】:2013-04-20 03:00:51
【问题描述】:

我似乎无法让我的键盘接受输入,我不知道为什么。我已经刷新了缓冲区(或者我认为我这样做了),我得到的只是 BCS。

这是我的菜单功能

//Menu
int menu() {
    int choice;

    do {
        printf("1)Move\n2)Display Maze\n3)Peek ahead\n");
        scanf("%i", &choice);
        while(getchar() != '\n');       
    } while(choice<=0 && choice>3);

    return choice;
}//end menu

这是我的主要内容。我先把迷宫打印出来再显示菜单

printMaze(maze);
do
{
    choice = menu();     
    if(choice == 1)
    {
        //direction = readDirection();
        //move(maze, direction);
        printf("Hi\n");
    }// end choice

    else if(choice ==2)
        //displayMaze(maze);
        printf("Hello\n");
    else
        //peek(maze);
        printf("Goodbye\n");

} while(choice!=4);//hag doesn't kill me or i find the exit)

【问题讨论】:

  • @luserdroog 闪烁光标综合症.....我在菜单显示结束时将其缩小到右侧。它实际上并没有达到下面的任何代码,但我无法弄清楚我做错了什么
  • 使用 %d 代替 %i.. 参考 bytes.com/topic/c/answers/…
  • @Mullaly %i 有点不寻常,但我认为它。在您链接的页面中,输入错误(初始 0 触发八进制模式,其中 8 和 9 是非法数字)。
  • @Mullaly 同样的事情。它不接受任何东西
  • 投票关闭,因为过于本地化。请参阅 OP 对答案的评论。

标签: c input menu flush


【解决方案1】:

您使用的是什么操作系统..,如果您是 windows 版本,请尝试重新安装 turbo c++ 编译器并重新配置“TC”目录。

【讨论】:

  • 这是一个评论/问题,而不是一个答案。另外,OP 有没有提到 Turbo C++(抱歉,如果我没有看到)?
  • 我真的想通了。我的老师少了一段代码哈。但我使用的是 ubuntu 12.04 i386
  • @jogojapan:“我似乎无法让我的键盘接受输入,我不知道为什么。我已经刷新了缓冲区(或者我认为我这样做了),我只是获取是 BCS。这是我的菜单功能”在这个定义中,turbo c++ 在哪里?
【解决方案2】:

我不是很喜欢 C 但是....

您不应该在 While 循环“内部”扫描 INPUT 吗??

while(getchar() != '\n');
  scanf("%i", &choice);
}while(choice<=0 && choice>3);

【讨论】:

    【解决方案3】:

    choice&lt;=0 &amp;&amp; choice&gt;3 -> choice&lt;=0 || choice&gt;3

    choice!=4 // 1 choice choice == 4

    【讨论】:

      猜你喜欢
      • 2021-06-10
      • 2010-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-05
      • 2013-08-21
      • 2012-09-21
      • 1970-01-01
      相关资源
      最近更新 更多