用scanf读取小int
有没有办法使用scanf
读取一个小的int(即范围-128..127的1字节int)? 考虑以下代码:
char x; scanf("%d", &x);
程序将读取一个int,最可能是4个字节,并尝试将其写入x的地址,从而违反了该地址后存储器中的3个字节。
我知道短整数( %h
)有一个修饰符,但我还没有听说过一个小int( char
)?
scanf
需要"%hhd"
格式字符串才能读入char
。
有没有办法使用scanf
读取一个小的int(即范围-128..127的1字节int)? 考虑以下代码:
char x; scanf("%d", &x);
程序将读取一个int,最可能是4个字节,并尝试将其写入x的地址,从而违反了该地址后存储器中的3个字节。
我知道短整数( %h
)有一个修饰符,但我还没有听说过一个小int( char
)?
scanf
需要"%hhd"
格式字符串才能读入char
。