[英]printf / sprintf issue with remove sign on numbers
我有一個可能為負或正的數字,我希望它從sprintf()中彈出而沒有負或正號。 我該怎么辦?
我嘗試%d
% d
%- d
%+ d
% -d
% +d
,其中沒有工作。
我嘗試了gcc 4.8.2和g ++ 4.8.2,它不起作用。 這是gcc中的錯誤嗎?
沒有格式字符串可應用絕對值功能。
這是您要做的:
#include <stdio.h>
#include <math.h>
void main()
{
int num = -6000;
printf("%d\n", abs(num));
}
%d
會將34渲染為34
,將-34渲染為-34
。 % d
將把34渲染為(space)+ 34
和-34渲染為-34
。 %+d
將把34渲染為+34
,將-34渲染為-34
。 "%5d
將把34渲染為(三個空格)+ 34
,將-34渲染為(兩個空格)+ -34
。它們都將使用字段大小5。 "%-5d
將把34渲染為34
+(三個空格),將-34渲染為-34
+(兩個空格)。它們都將使用字段大小5,但由於-
,因此保持正當。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.