所以这是密码

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/

10-11 21:45