如何将浮点数打印到visual c ++ messagebox?

kar*_*ari 2 visual-c++

我有一个浮点数.我想在消息框中打印它.怎么做?

MessageBox(hWnd, "Result = <float>", L"Error", MB_OK);
Run Code Online (Sandbox Code Playgroud)

更新:

我这样做,它在消息框中打印出中文字符.

 float fp = 2.3333f;
 sprintf(buffer,"%f",fp);
 MessageBox(hWnd, LPCWSTR(buffer), L"Error", MB_OK);
Run Code Online (Sandbox Code Playgroud)

dal*_*lle 5

当您使用wchar_tWin32函数的版本时,您应该使用swprintf而不是sprintf:

float fp = 2.3333f;
const size_t len = 256;
wchar_t buffer[len] = {};
swprintf(buffer, L"%f", fp);
MessageBox(hWnd, buffer, L"Error", MB_OK);
Run Code Online (Sandbox Code Playgroud)

为避免潜在的缓冲区溢出,您还可以使用_snwprintf:

float fp = 2.3333f;
const size_t len = 256;
wchar_t buffer[len] = {};
_snwprintf(buffer, len - 1, L"%f", fp);
MessageBox(hWnd, buffer, L"Error", MB_OK);
Run Code Online (Sandbox Code Playgroud)

或者更好的是,使用std::wostringstream声明<sstream>:

float fp = 2.3333f;
std::wostringstream ss;
ss << fp;
MessageBox(hWnd, ss.str().c_str(), L"Error", MB_OK);
Run Code Online (Sandbox Code Playgroud)