我在将双精度值转换为字符串,然后再转换为消息框时遇到了问题。据我所知,sprintf (大致来说,但不是最佳选择,因为某些方面)是我想要的函数。下面是我的示例代码,但我不确定哪里出错了。
DOUBLE time;
char timearray[30];
time = (double)(end.QuadPart - st.QuadPart)/(double)freq.QuadPart;
sprintf(timearray, "%lf", time);我从这里到哪里去了?我尝试过像这样的东西;
MessageBox(NULL, timearray, TEXT("mb"), MB_OK);但这会给出以下关于timearray参数的错误:"*char“类型的错误与"LPCWSTR”类型的参数不兼容。
你知道我哪里错了吗?
发布于 2012-04-30 03:14:14
可能您的项目默认设置为使用宽(Unicode)字符,因此您应该使用wchar_t和wsprintf (更好,wnsprintf)。
double time;
wchar_t buffer[30];
time = (double)(end.QuadPart - st.QuadPart)/(double)freq.QuadPart;
_snwprintf(buffer, sizeof(buffer)/sizeof(*buffer), L"%lf", time);
MessageBoxW(NULL, buffer, L"mb", MB_OK);或者,如果您想使用TCHARs:
double time;
TCHAR buffer[30];
time = (double)(end.QuadPart - st.QuadPart)/(double)freq.QuadPart;
_sntprintf(buffer, sizeof(buffer)/sizeof(*buffer), _T("%lf"), time);
MessageBox(NULL, buffer, _T("mb"), MB_OK);https://stackoverflow.com/questions/10375063
复制相似问题