如果我有char:char ch
我想给它分配一个数字的数值,例如,如果用户输入0,我希望字符的值是0 ('\0'),而不是48 ('0')。
如果我尝试scanf("c", &ch),它将为48赋值(ascii值为0),如果我尝试scanf("d", &ch),则会得到一个错误。
我知道可以通过将其作为字符串接收,然后将其转换为char,然后使用ch-'0'获取数字值,但如果没有这些额外的步骤,这是可能的吗?
发布于 2020-04-03 14:14:50
使用
scanf将数字的数值赋值给char
从C99开始,直接的方法是
char ch;
scanf("%hdd", &ch);
// or to insure reading only 1 character
scanf("%1hdd", &ch);在此之前,下面的内容很常见。@Lundin
char ch;
int ch_int;
if (scanf("%d", &ch_int) == 1) {
  ch = ch_int;或读取char并将其字符值转换为数值。(OP对此已经很熟悉了)
char ch;
scanf("%c", &ch);
ch -= '0';https://stackoverflow.com/questions/61008325
复制相似问题