C简介:连续输入提示

时间:2013-04-17 06:36:32

标签: c loops prompt

我想在ANSI C中创建一个提示用户输入的代码。 首先,我想打印提示。 然后,我想回显提示和循环,仅在键入和回显字符时才会显示。

我知道要创建一个无限循环,我必须将while()的条件设置为始终为true的内容,例如while(1)

然而,当我测试我的代码时,我似乎一遍又一遍地循环打印“输入一个字符”。有关C新手的任何提示吗?

#include <stdio.h>

int main()
{

char mychar;

while(1)
    printf("Enter a characater:\n");
    scanf("%c", &mychar);
    printf("%c", &mychar)
}

2 个答案:

答案 0 :(得分:8)

C中的块不是基于缩进(例如在python中)。阻止必须以{开头,以}结尾,如下所示:

while(1)
{
    printf("Enter a characater:\n");
    scanf("%c", &mychar);
    printf("%c", mychar);// NOTE the missing `&` in front of `mychar` here
}

答案 1 :(得分:0)

您应该使用可以自动格式化/自动注册整个源文件的编辑器或IDE。如果你有这样的事情,你会立即看到问题,因为你的代码看起来像这样:

int main()
{
  char mychar;

  while(1)
    printf("Enter a characater:\n");
  scanf("%c", &mychar);
  printf("%c", &mychar)
}

即使是经验丰富的C程序员有时也会犯这样的错误,所以即使将来也可以使用简单的治疗方法(autoindent / autoformat代码)。


无关的问题,您将指针传递给后者%cprintf格式说明符的char。您应该在编译器上启用警告,它会警告您。