c - 八进制或十六进制数在C中转换为十进制
问题描述
扫描一个数字及其基值。如果一个数字以 0 开头,则为八进制;如果以 0x 开头,则为十六进制。打印相应的十进制值。
#include<stdio.h>
int main()
{
int a,b;
scanf("%x %d",&a,&b);
printf("%d",a);`
}
3个测试用例显示错误。请帮助我。
解决方案
使用 scanfi 标志:
匹配一个可选的有符号整数;下一个指针必须是指向 int 的指针。如果整数以 0x 或 0X 开头,则以 16 为基数读取,如果以 0 开头,则以 8 为基数读取,否则以 10 为基数读取。仅使用与基础相对应的字符。
#include<stdio.h>
int main(void)
{
int a,b;
scanf("%i %i",&a,&b);
printf("%d %d\n", a, b);`
return 0;
}
推荐阅读
- java - 如何镜像Android的屏幕?
- vba - 记录集数据未填充到 txt 字段中
- angular - 间谍服务的行为不符合预期
- javascript - 如何通过某个经度和纬度内的半径限制 Google Places 自动填充 API?
- tableau-api - 如何设置 Tableau 数据提取刷新
- php - 更正 HTML 和 Joomla 中错误生成的 href 链接
- qt - 使用 cmake 构建 Qt 项目
- azure - 未充分利用的虚拟机 Azure 警报
- android - 如何在 Android 和 iOS 的颤振应用程序上创建警报?
- python - 为什么在使用命令行设置本地时间时使用 timedatectl 从 python 设置时间设置 UTC 时间?