voi*_*oid 11 c++ visual-studio
我无法double使用打印值wsprintf().我试过sprintf(),它工作得很好.
用于wsprintf()和的语法sprintf()如下:
wsprintf(str,TEXT("Square is %lf "),iSquare); // Does not show value
sprintf(str," square is %lf",iSquare); // works okay
Run Code Online (Sandbox Code Playgroud)
我在使用时犯了什么错误wsprintf()吗?
Jer*_*fin 30
wsprintf不支持浮点.错误就是使用它.
如果你想要类似的东西sprintf,但对于宽字符/字符串,你想要的swprintf.
实际上,既然你正在使用TEXT宏,你可能会想要_stprintf:它将从一个窄实现转变为宽实现与同一个预处理器宏同步,TEXT以决定字符串是窄还是宽.然而,整个方法在很大程度上是微软仍然出售和支持基于32位NT内核和16位内核的Windows版本的时代遗留下来的.16位版本只有极少的宽字符支持,因此Microsoft努力允许编译单个源代码库以使用窄字符(以16位内核为目标)或宽字符(以32位为目标)内核).16位内核已经消失了很长时间,几乎没有人真正有理由再支持它们了.
它的价值:wsprintf几乎完全是一个历史遗迹.该w显然代表Windows.它被包含在Windows的一部分中(当时回到16位日).它是在没有浮点支持的情况下编写的,因为当时Windows并没有在内部使用任何浮点数 - 这就是为什么它有像MulDiv内置的例程的一部分,即使用浮点数做(大致)相同也是如此.很琐碎.
| 归档时间: |
|
| 查看次数: |
16482 次 |
| 最近记录: |