Предупреждение C6274

Без символа, передаваемого в качестве параметра "number", если в вызове функции требуется символ.

Замечания

Это предупреждение указывает, что строка формата указывает, что символ является обязательным (например, %c%C или спецификация), но не целочисленное число, например float, string или структуры, передается. Этот дефект, скорее всего, приведет к неправильному выводу.

Имя анализа кода: NON_CHAR_ARGUMENT_TO_FORMAT_FUNCTION

Пример

Следующий код создает это предупреждение:

#include <stdio.h>

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

Чтобы исправить это предупреждение, используйте следующий код:

#include <stdio.h>

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

Следующий код использует функцию безопасной обработки строк, sprintf_sчтобы исправить это предупреждение:

#include <stdio.h>

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

Синтаксис спецификации форматирования: функции printf и wprintf
sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l
C4477
C4313