用scanf读取小int

时间:2012-02-28 20:28:34

标签: c scanf

有没有办法使用scanf读取一个小的int(即范围-128..127的1字节int)?请考虑以下代码:

char x;
scanf("%d", &x);

程序将读取一个int,最可能是4个字节,并尝试将其写入x的地址,从而违反了该地址后存储器中的3个字节。

我知道short int(%h)有一个修饰符,但我没有听说过一个小int(char)?

1 个答案:

答案 0 :(得分:6)

scanf需要"%hhd"格式字符串才能读入char