gpt4 book ai didi

c - printf 连续打印

转载 作者:太空狗 更新时间:2023-10-29 15:24:12 27 4
gpt4 key购买 nike

尝试另一个来自 KandR 的示例,我有以下 C 代码:

#include <stdio.h>

int main(){
double nc = 5;

printf("%*.0f",nc);

return 0;
}

这会打印 5,然后从左到右继续移动(打印空白字符),然后换行,直到按 Ctrl + C 停止)。当我将 printf 行更改为 printf("%.0f",nc) 它按预期工作,即它只打印 5 并停止。

根据 http://www.cplusplus.com/reference/cstdio/printf/ printf 的语法是:

%[flags][width][.precision][length] specifier.

我将 [width] 更改为 * 以便 printf 不会限制输出中的数字。

1) Why does it keep printing blank characters until stopped?

2) When I do not give any width, what does printf assume by default?

3) I also modified the above code to set nc = 500, then printf does not print anything except the continuous blank characters!

当我将它更改为 500.00 时,它会打印 500,之后它会一直打印空白字符,直到停止。为什么设置nc=500没有输出,为什么设置nc=500.00有输出?

最佳答案

格式说明符 "%*.0f" 需要两个参数:一个是宽度说明符,另一个是 double 说明符。因为你只传递一个,它调用 undefined behaviour

如果你更正它,例如:

  printf("%*.0f",5, nc); // width 5

它会很好地工作。

关于c - printf 连续打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24223130/

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