Aracılığıyla paylaş


C6272

C6272 Uyarı: kayan noktalı sayı olmayan geçirilen bağımsız değişken olarak <number> float <function> çağrısına ne zaman gereklidir

Biçim dizesi bir float gibi gerekli olduğunu belirtir, bu uyarı gösterir bir %f veya %g belirtimi için printf, ancak bir olmayan-float olarak bir tamsayı veya dize geçildi.Bu büyük bir olasılıkla yanlış bir sonuca neden bozukluğudur; Ancak, bazı durumlarda, çökmesine de neden olabilir.

Örnek

Aşağıdaki kod, bu uyarı oluşturur:

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

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

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

Bu uyarı düzeltmek için %i yerine %f aşağıdaki kodda gösterildiği gibi belirtimi:

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

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

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

Aşağıdaki kod güvenli dize işleme işlevini kullanır sprintf_s, bu uyarı düzeltmek için:

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

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

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

Ayrıca bkz.

Başvuru

sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l