c - sprintf 与 %*.s 格式说明符一起使用时写入空白字符串

标签 c printf format-specifiers

我有一个 sprintf 如下 -

sprintf (output,"%.*s%s%s%s",length,Str1,Str2,Str3,Str4);

所有字符串都包含有效数据,并且长度参数也正确。 然而,在此 sprintf 之后,输出仍然为空。

如果我用 %s 替换 %.*s 并删除长度参数,它就可以正常工作。

最佳答案

试试这个

改变

sprintf (output,"%*.s%s%s%s",length,Str1,Str2,Str3,Str4);

sprintf (output,"%.*s%s%s%s",length,Str1,Str2,Str3,Str4);
                  ^^

关于c - sprintf 与 %*.s 格式说明符一起使用时写入空白字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27055239/

相关文章:

c - 下面代码中的 "*&"有什么用

c - printf 语句出错? (在 C 中)*更新*

字符c[] ="Albus"; printf ("%c",c);

c - Scanf() - %a 格式/转换说明符是什么?

c - 在 C 中打印前导 0

c - 为什么 %lf 不能在 printf 中使用 double ,但 %f 可以?

c++ - 如何将字符串从 make 文件传递​​到 C++ 程序

c - 我有点困惑,自动内存分配是在运行时还是编译时发生

c - C中最严格的类型是什么意思?

c++ - 自定义支持 __attribute__((format))