共用方式為


C6272

警告 C6272: 傳遞非浮點做為引數 <number>,但 <function> 呼叫中需要浮點

這個警告表示格式字串 (Format String) 指定需要浮點 (例如,printf, 的 %f 或 %g 規格),但所傳遞的卻是非浮點 (例如整數或字串)。 這項缺失可能會導致輸出錯誤。不過,在特定情況下會導致損毀。

範例

下列程式碼將產生出這個警告:

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

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

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

若要更正這個警告,請使用 %i,而非 %f 規格,如下列程式碼所示:

#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