首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用扫描f将数字的数值赋值为字符

使用扫描f将数字的数值赋值为字符
EN

Stack Overflow用户
提问于 2020-04-03 08:58:27
回答 1查看 96关注 0票数 1

如果我有char:char ch

我想给它分配一个数字的数值,例如,如果用户输入0,我希望字符的值是0 ('\0'),而不是48 ('0')。

如果我尝试scanf("c", &ch),它将为48赋值(ascii值为0),如果我尝试scanf("d", &ch),则会得到一个错误。

我知道可以通过将其作为字符串接收,然后将其转换为char,然后使用ch-'0'获取数字值,但如果没有这些额外的步骤,这是可能的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-03 14:14:50

使用scanf将数字的数值赋值给char

从C99开始,直接的方法是

代码语言:javascript
运行
复制
char ch;
scanf("%hdd", &ch);
// or to insure reading only 1 character
scanf("%1hdd", &ch);

在此之前,下面的内容很常见。@Lundin

代码语言:javascript
运行
复制
char ch;
int ch_int;
if (scanf("%d", &ch_int) == 1) {
  ch = ch_int;

或读取char并将其字符值转换为数值。(OP对此已经很熟悉了)

代码语言:javascript
运行
复制
char ch;
scanf("%c", &ch);
ch -= '0';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61008325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档