防止在 printf C C++ 中打印符号
Prevent sign from printing in printf C C++
默认打印负数符号,如果需要,通过添加 + 标志可以打印加号。
我想打印一个没有符号的数字。
我相信有一个标志,但这似乎不起作用。
printf("'%d'", 10); --> '10'
printf("'%d'",-10); --> '-10'
printf("'%+d'",10); --> '+10'
如果有人可以建议如何为输入 x 和 -x,(x>0) 打印 x,那就太好了。
PS:我不喜欢对数字进行运算,求一个软件功能
尝试
printf("%d",abs(number));
其中数字是您要打印的数字。
I am looking to print a number without its sign.
没有人会想要这样,因为从 负数 数字中留下符号会使它成为一个 不同 数字。
PS: I don't like to operate on numbers
好吧,那就做你不喜欢的事吧……abs()
是你正在寻找的函数,它准确地表达了正在发生的事情。
printf 中没有标志来执行您想要的操作,但是您可以使用 abs() 函数,如下所示
printf("%d",abs(i));
其中 i
是您的变量。
这适用于整数。您也可以对数字进行二元运算以将其转换为正表示,但是 abs()
已经为您完成了,所以这是肤浅的。
请注意,执行 abs(i)
不会以任何方式修改 i
,因此无需先复制变量即可安全地使用它们。
不确定您为什么反对 abs()
- 但如果不使用它是必要的,请使用三元 (p<0?-p:p)
作为等效项。
在您的示例中,您可以通过简单的字符替换来解决问题。先打印符号,再换成其他字符:
char buf[99];
snprintf(buf, 99, "%+d'", 10); // +10'
buf[0] = '\''; // '10'
printf("%s", buf);
但这是特殊情况,一般情况下你应该考虑使用abs()
函数。
默认打印负数符号,如果需要,通过添加 + 标志可以打印加号。
我想打印一个没有符号的数字。
我相信有一个标志,但这似乎不起作用。
printf("'%d'", 10); --> '10'
printf("'%d'",-10); --> '-10'
printf("'%+d'",10); --> '+10'
如果有人可以建议如何为输入 x 和 -x,(x>0) 打印 x,那就太好了。
PS:我不喜欢对数字进行运算,求一个软件功能
尝试
printf("%d",abs(number));
其中数字是您要打印的数字。
I am looking to print a number without its sign.
没有人会想要这样,因为从 负数 数字中留下符号会使它成为一个 不同 数字。
PS: I don't like to operate on numbers
好吧,那就做你不喜欢的事吧……abs()
是你正在寻找的函数,它准确地表达了正在发生的事情。
printf 中没有标志来执行您想要的操作,但是您可以使用 abs() 函数,如下所示
printf("%d",abs(i));
其中 i
是您的变量。
这适用于整数。您也可以对数字进行二元运算以将其转换为正表示,但是 abs()
已经为您完成了,所以这是肤浅的。
请注意,执行 abs(i)
不会以任何方式修改 i
,因此无需先复制变量即可安全地使用它们。
不确定您为什么反对 abs()
- 但如果不使用它是必要的,请使用三元 (p<0?-p:p)
作为等效项。
在您的示例中,您可以通过简单的字符替换来解决问题。先打印符号,再换成其他字符:
char buf[99];
snprintf(buf, 99, "%+d'", 10); // +10'
buf[0] = '\''; // '10'
printf("%s", buf);
但这是特殊情况,一般情况下你应该考虑使用abs()
函数。