gpt4 book ai didi

c - C中的格式调整

转载 作者:太空宇宙 更新时间:2023-11-04 03:15:36 25 4
gpt4 key购买 nike

例如,我想要这样的输出

Subtotal           20
Discount(10%) - 2 //negative sign always have 2 spaces out from '2'

我试过这样写代码。

dis = subtotal*discount/100; //dis = 20*10/100
printf("Subtotal%13d\n",subtotal);
printf("Discount(%d%s)%4s-%3d\n",discount,"%"," ",dis);

但是如果没有折扣呢,我的输出会变成这样

数字向前移动到左侧

Subtotal           20
Discount(0%) - 0

另外,如果我的小计和折扣很大。

负号和数字粘在一起

Subtotal         1000
Discount(50%) -500

如何对此进行编码,直到我的数字永远不会在折扣 (0%-100%) 之间向前移动到左侧或右侧,并且始终在负号和数字 (dis) 之间留出 2 个空格?

最佳答案

据我所知,没有标志可以在 - 和数字之间添加间距,但一种解决方案可能是添加一个额外的字符串缓冲区来写出所需的格式:

#include <stdio.h>

int main()
{
char discount_amount_string[255];
char discount_percent_string[255];
int subtotal = 2000;
int discount_percent = 10;
int discount_amount = subtotal * discount_percent / 100;

snprintf(discount_amount_string, sizeof(discount_amount_string), "- %d", discount_amount);
snprintf(discount_percent_string, sizeof(discount_percent_string), "(%d%%)", discount_percent);
printf("Subtotal%15d\n",subtotal);
printf("Discount%-7s%8s\n", discount_percent_string, discount_amount_string);

return 0;
}

关于c - C中的格式调整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52258229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com