如何在C语言中使用scanf读取单个字符

139

在C语言中:

我正在尝试使用scanf从用户获取字符,但运行程序时它不等待用户输入任何内容...

这是代码:

char ch;
printf("Enter one char");
scanf("%c", &ch);
printf("%c\n",ch);

为什么它不起作用?


2
仅澄清一下,如果C程序仅包含上述代码,则它将按预期工作。像OP提到的那样可能出现的问题只有在与其他I/O代码一起使用时才会出现,原因在P.P的答案中提到。 - forumulator
11个回答

-4

你必须使用有效的变量。 ch 不是这个程序的有效变量。请使用 char Aaa;

char aaa;
scanf("%c",&Aaa);

已测试,可正常运行。


2
“ch不是此程序的有效变量”除非它是?这是给定示例中的第一行代码。 - Hoppeduppeanut
这个答案非常有用。我不知道C编译器是不区分大小写的。例如:THIS_ANSWER_IS_BAD可以被C编译器识别为this_answer_is_BAD。哦,应该是mychar而不是ch,测试了一下,它可以工作。 - FaranAiki

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接