Freigeben über


C6272

C6272

Warnung C6272: Ein Nichtgleitkommaargument wurde als Argument <Nummer> übergeben. Im Aufruf von <Funktion> ist jedoch ein Gleitkommaargument erforderlich.

Diese Warnung gibt an, dass entsprechend der Angabe in der Formatzeichenfolge ein Gleitkommaargument erforderlich ist (z. B. eine %f-Spezifikation oder %g-Spezifikation für printf,), jedoch ein Nichtgleitkommaargument wie eine ganze Zahl oder eine Zeichenfolge übergeben wird. Dieser Fehler kann zu einem falschen Ergebnis, in einigen Fällen sogar zu einem Absturz führen.

Beispiel

Der folgende Code generiert diese Warnung:

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

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

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

Um diese Warnung zu korrigieren, verwenden Sie statt der %i-Spezifikation die %f-Spezifikation, wie im folgenden Code dargestellt:

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

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

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

Der folgende Code verwendet die Funktion zur sicheren Zeichenfolgenbearbeitung, sprintf_s, um diese Warnung zu korrigieren:

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

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

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

Siehe auch

Referenz

sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l