当前位置: 首页 > 知识库问答 >
问题:

C 打印 f:条件格式取决于整数值的基数

轩辕庆
2023-03-14

我有一个无符号int变量x,它的值包含在0和0xFFFFF之间,我想以一种更便于用户阅读的方式打印它
如果x大于0xF000,则以十六进制打印,否则以十进制打印。这样就可以了

if (x > 0xF000) 
   printf("%#x", x);
else 
   printf("%u", x)

但是我想知道是否有更方便,更智能的方法来处理这个问题,例如根据其值对输出进行条件格式化。

共有1个答案

甄胡非
2023-03-14

您的“条件格式”可以使用三元“?”运算符指定,如注释中所述:

printf((x > 0xF000) ? "%#x" : "%u", x);

然而,正如评论中提到的,这对于可读性来说并没有什么帮助。

您还可以使用字符串变量作为格式参数,例如(在此琐碎的情况下):

char fmt[4];
if (x > 0xF000) strcpy(fmt, "%x");
else            strcpy(fmt, "%u"); // You haven't specified what type "x" is, so let's assume "unsigned".
printf(fmt, x);
 类似资料:
  • 我正在使用谷歌表单作为日常仪表板。我需要的是根据另一个单元格C5的值更改单元格B5的背景色。如果C5大于80%,则背景色为绿色,但如果低于,则为琥珀色/红色。 这是Google Sheets功能提供的还是我需要插入脚本?

  • 利用call函数控制数组的输出格式: #include <stdio.h> int matrix[10][10]; /* 格式化输出数组 */ void print(int matrix[][10], int m, int n) { int i, j; for (i = 0; i < m; ++i) { for (j = 0; j < n; ++j)

  • 问题内容: 我有一个数字,我想以二进制形式打印。我不想通过编写算法来做到这一点,Java中是否有任何内置函数? 问题答案: 假设你的意思是“内置”: 请参阅整数文档。 (Long具有类似的方法,具有可在其中指定基数的实例方法。)

  • 本文向大家介绍C#实现的ZPL条码打印类完整实例,包括了C#实现的ZPL条码打印类完整实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现的ZPL条码打印类。分享给大家供大家参考,具体如下: 更多关于C#相关内容感兴趣的读者可查看本站专题:《C#程序设计之线程使用技巧总结》、《C#操作Excel技巧总结》、《C#中XML文件操作技巧汇总》、《C#常见控件用法教程》、《WinForm

  • 问题内容: 我正在阅读一个python脚本,该脚本接受XML文件的输入并输出XML文件。但是,我不了解打印语法。可有人请解释什么的呢? 问题答案: 该方法格式化字符串字面量 和它的新功能。 甲 格式的字符串文字 或 F-串 是前缀字符串文字或。这些字符串可能包含替换字段,这些替换字段由花括号分隔。尽管其他字符串文字始终具有恒定值,但是格式化的字符串实际上是在运行时评估的表达式。 格式化字符串文字的

  • 我试图使用条件打印表中的值 我有三列A、B、C 我的条件是如果列A=="user" 然后在列B中打印值或使其为空 这会导致类型转换错误