如果我有一个字符: char ch
并且我想给它分配一个数字的数字值,例如,如果用户输入0,我希望char的值是0('\0'
)而不是48('0'
)
如果我尝试scanf("c", &ch)
将分配48
(0的ascii值),如果我尝试将scanf("d", &ch)
收到错误。
我知道可以通过将其作为字符串接收,然后将其转换为char,然后使用ch-'0'
来获取数字值来完成,但是如果没有此额外步骤,是否有可能?
位的分配数值成
char
使用scanf
从C99开始,直接的方法是
char ch;
scanf("%hdd", &ch);
// or to insure reading only 1 character
scanf("%1hdd", &ch);
在此之前,以下是常见的。@伦丁
char ch;
int ch_int;
if (scanf("%d", &ch_int) == 1) {
ch = ch_int;
或读取char
并将其字符值转换为数字值。(OP已经对此很熟悉)
char ch;
scanf("%c", &ch);
ch -= '0';
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句