我正在尝试测试这个简单的查找表,但不明白为什么scanf
和getchar
都会将换行符('\n'
)添加到输入中:
const int arr[10] = {1,0,5,7,6,4,8,2,9,3};
char digit;
printf("enter digits please\n");
digit = getchar();
while ((digit>='0') && (digit<='9'))
{
printf("%d --> %d\n",digit,arr[digit-'0']);
digit = getchar();
}
printf("bye bye!");
运行此代码时,无论使用printf
还是getchar()
,while循环仅执行一次,因为换行符('\n'
)也存储在char变量digit
中,我不知道原因。
getchar()
会读取一个换行符。 - Barmar