我正在创建一个程序,如果我输入的字符是大写字母并且当我输入字符“0”时循环停止,则返回 true。代码如下:
#include <stdio.h>
int main (void)
{
char c;
do
{
printf ("Please enter character to check if uppercase: ");
c = getchar ();
if ( (c >= 'A') && (c <= 'Z') )
{
printf ("true\n");
}
else
{
printf ("false\n");
}
} while ( c != '0');
return 0;
}
但是,我得到了奇怪的行为(输出):
请输入字符以检查是否大写:a
错误的
请输入字符以检查是否大写:false
请输入字符以检查是否大写:b
错误的
请输入字符以检查是否大写:false
请输入字符以检查是否大写:A
真的
请输入字符以检查是否大写:false
请输入字符以检查是否大写:0
错误的
- 提示后出现的“错误”不是我输入的。例如:
- 1.出现提示
- 2.我输入字符'a'
- 3.控制台打印错误
- 4.出现提示但也打印的是提示旁边的“假”字
- 5.提示再次出现
所以似乎 getchar() 正在接受不是来自我的输入。有任何想法吗?