gpt4 book ai didi

c - Printf 函数将 wrt 格式化为不同的值。

转载 作者:行者123 更新时间:2023-11-30 15:27:20 25 4
gpt4 key购买 nike

我正在使用结构制作一个复数计算器,这是我的 printf 函数

printf("%d%c%di", sum.real, sign, sum.imag);

我可以一切正确,除了一件事,当 sum.imag 部分是 1 或 -1 时,它当然分别打印出“1i”或“-1i”,除了使用大量“if”之外,还有其他方法吗我可以格式化 printf 函数,如果 sum.imag 是 1 或 -1,则它不应该打印该值,而是只打印“i”??

最佳答案

我认为你不能用你的格式字符串来做到这一点;你必须使用 if 语句:

if (sum.imag == 1 || sum.imag == -1) {
printf("%d%ci", sum.real, sign);
} else {
printf("%d%c%di", sum.real, sign, sum.imag);
}

或者,您可以使用三元表达式作为格式字符串,但这会更不可读,并且实际上是未定义的行为,尽管它应该适用于大多数现代编译器,尽管它们会产生有关(有时)的警告) 未使用的参数。您可以在this question上阅读更多相关信息。 .

printf((sum.imag == 1 || sum.imag == -1) ? "%d%ci" : "%d%c%di"), sum.real, sign, sum.imag);

关于c - Printf 函数将 wrt 格式化为不同的值。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27057775/

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