Warning C6274

Non-character passed as parameter 'number' when character is required in call to 'function'

Remarks

This warning indicates that the format string specifies that a character is required (for example, a %c or %C specification) but a non-integer such as a float, string, or struct is being passed. This defect is likely to cause incorrect output.

Code analysis name: NON_CHAR_ARGUMENT_TO_FORMAT_FUNCTION

Example

The following code generates this warning:

#include <stdio.h>

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

To correct this warning, use the following code:

#include <stdio.h>

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

The following code uses safe string manipulation function, sprintf_s, to correct this warning:

#include <stdio.h>

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

Format specification syntax: printf and wprintf functions
sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l
C4477
C4313