所以这是密码
void main()
{
unsigned char n,t;
scanf("%hhu %hhu",&n,&t);
printf("%hhu %hhu",n,t);
}
问题是当我分别输入5和1时,输出是0和1。0表示n,1表示t。但是,当我将类型从char更改为int/unsigned时,输出与预期一样正确:5和1。
问题是为什么用char请求(数字)输入会给出无效的值?
最佳答案
int main(void)
请
scanf("%hhu %hhu",&n,&t);
此处应为-----^--^
unsigned char *
对于
printf("%hhu %hhu",n,t);
所以改变
char n,t;
到
unsigned char n,t;
关于c - 使用char和scanf“%hhu”时输入值无效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15806528/