C6274

警告 C6274:传递了非字符型参数 <number>,而对 <function> 的调用需要字符型参数

此警告意味着,格式字符串指定需要的是字符(例如 %c 或 %C 规范),但所传递的是非整数,如浮点型、字符串或结构。 此缺陷可能导致错误的输出。

示例

下面的代码生成此警告:

#include <stdio.h>
#include <string.h>

void f(char str[])
{
   char buff[5];
    
   sprintf(buff,"%c",str);
}

若要更正此警告,请使用下面的代码:

#include <stdio.h>
#include <string.h>

void f(char str[])
{
   char buff[5];
 
   sprintf(buff,"%c",str[0]);
}

下面的代码使用安全的字符串操作函数 sprintf_s 来更正此警告:

#include <stdio.h>
#include <string.h>

void f(char str[])
{
   char buff[5];
  
   sprintf_s(buff,5,"%c", str[0]);
}