【发布时间】:2020-07-15 09:54:25
【问题描述】:
如果我有一个字符:char ch
我想给它分配一个数字的数值,例如,如果用户输入 0,我希望 char 的值为 0 ('\0') 而不是 48 ('0')
如果我尝试scanf("c", &ch),它将分配48(ascii 值为0),如果我尝试scanf("d", &ch),则会出现错误。
我知道可以通过将其接收为字符串,然后将其转换为char,然后使用ch-'0'来获取数值来完成,但是没有这些额外的步骤是否可以?
【问题讨论】:
-
将输入读入
int,然后将int分配给char。 -
@user3121023 我在使用 printf 时是否也需要使用 %hhd ?还是 %d 好吗?
-
@user3121023 我用的是C90,不支持hhd
-
@avivgood2:停止使用 C 1990。
-
avivgood2,你用的是什么编译器?
标签: c char scanf return-value c89