Поделиться через


C6272

Предупреждение C6272: передан параметр <номер>, не являющийся аргументом с плавающей запятой, тогда как в вызове <функции> требуется аргумент с плавающей запятой.

Данное предупреждение означает, что строка формата указывает на необходимость значения с плавающей запятой, например спецификации %f или %g для метода printf, однако передан аргумент другого типа, такой как целое число или строка. Эта неполадка, скорее всего, приведет к ошибке вывода; однако в некоторых случаях она может вызвать сбой.

Пример

Данное предупреждение создается в следующем коде:

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

void f()
{
   char buff[5];
   int i=5;

   sprintf(buff,"%s %f","a",i); 
}

Для устранения этого предупреждения используйте вместо спецификации %f спецификацию %i, как показано в следующем коде:

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

void f()
{
   char buff[5];
   int i=5;

   sprintf(buff,"%s %i","a",i);  
}

В следующем фрагменте кода для устранения этого предупреждения используется функция безопасной обработки строк sprintf_s:

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

void f()
{
   char buff[5];
   int i=5;

   sprintf_s(buff,5,"%s %i","a",i); // safe version
}

См. также

Ссылки

sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l