如何在C语言中用sprintf()添加字符'%'?

时间:2019-10-09 22:02:04

标签: c string printf asprintf

我想制作一个包含bash命令的字符串,该命令具有格式化选项,例如stat -c "%F %A %n"。我想使用sprintf()来添加命令的参数,该参数是main函数的参数之一,但是它警告我'%'用于C语言中的特殊字符串格式。将其写为“ \%”,但给出相同的错误。看起来像这样

sprintf(cmd, "stat -c \"\%F \%A \%n\" %s", args[i]);`.

警告如下:

warning: format ‘%F’ expects argument of type ‘double’, but argument 3 has type ‘char*’ [-Wformat=]
         sprintf(cmd, "stat -c \"\%F \%A \%n \" %s", args[i])
warning: format ‘%A’ expects a matching ‘double’ argument [-Wformat=]
warning: format ‘%n’ expects a matching ‘int*’ argument [-Wformat=]
warning: format ‘%s’ expects a matching ‘char*’ argument [-Wformat=]

0 个答案:

没有答案