gpt4 book ai didi

c - sprintf 中的奇怪符号

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

我在 C 代码中定义了以下内容:

#define set_str(r,s) sprintf(r, "%-.*s", (int)sizeof(r)-1,s)

我尝试在我的代码中调用函数 set_str 来理解符号的含义,但它没有提供任何特殊格式或任何东西,变量只是按原样复制。谁能告诉我这是什么意思?

最佳答案

除了格式化输出和一些字符外什么都没有。

% --> 表示 % 之后的字符是占位符,将被相应的参数替换。

But here few things came into picture that's why you are confused.

. --> 就是*的意思是sizeof(r)-1占用的空间

* --> 将指定要打印的字符的大小或宽度,* 将替换为 sizeof(r)-1.

- --> 用于左调整或对齐。

last s --> 将替换为字符串形式的 s

还有sprintf() 表示打印到缓冲区。在本例中,它是 r

编辑 :在 . 的情况下,请参阅打印的一般情况。

printf("%sx.yz",args); 
// just forget about the `args` it can be as many as the format specifiers,
// it's an example for one argument.

s = sign, can be `+` or `-`.`+` means right adjustment `-`means left adjustment.
x = At least `x` characters wide.
y = Exactly `y` charactes wide.
z = format specifier like `s`,`d`,`f` and so on as for corresponding arguments. `

关于c - sprintf 中的奇怪符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13972780/

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