为什么在wchar_t上使用 Cstring
Why to use Cstring over wchar_t
我有一个代码,其中Cstring和wchar_t都使用了。我想我可以用wchar_t而不是Cstring做同样的工作,那么为什么要使用Cstring。
在m_szChargeType和m_szConfirmedChargeType我有A。起初我的代码是
wchar_t m_szChargeType[LEN_CHARGE_TYPE];
wchar_t m_szConfirmedChargeType[LEN_CHARGE_TYPE];
LoadString(GetResourceInstance(),IDS_MS_CI_TYPEA,m_szChargeType,LEN_CHARGE_TYPE);// fills value A in m_szChargeType
LoadString(GetResourceInstance(),IDS_MS_CI_TYPEA,m_szConfirmedChargeType,LEN_CHARGE_TYPE); // fills value A in m_szConfirmedChargeType
CString strSpace(IDS_MS_SPACE); //IDS_MS_SPACE has a space in rc file and IDS_MS_TYPE have rate in ini file
CString strType(IDS_MS_TYPE);
strSpace += strType;
wsprintf(m_szChargeType, _T("%s%s"), m_szChargeType, strSpace);
wsprintf(m_szConfirmedChargeType, _T("%s%s"), m_szConfirmedChargeType, strSpace);
m_szChargeType 和 m_szConfirmedChargeType 的结果为 A0,但预期为 A 率
然后我做到了
wchar_t strSpace[LEN_CHARGE_TYPE];
wchar_t strType[LEN_CHARGE_TYPE];
LoadString(GetResourceInstance(),IDS_MS_SPACE,strSpace,LEN_CHARGE_TYPE);
LoadString(GetResourceInstance(),IDS_MS_TYPE,strType,LEN_CHARGE_TYPE);
wsprintf(m_szChargeType, _T("%s%s%s"), m_szChargeType, strSpace, strType);
wsprintf(m_szConfirmedChargeType, _T("%s%s%s"), m_szConfirmedChargeType, strSpace, strType);
它工作正常。 并且输出与预期相同 A 率
CString
是一个类,因此它提供了功能。 wchar_t
只是一个基本类型,它表示单个宽字符。我假设你在谈论wchar_t*
.
这就像问为什么你应该使用std::string
而不是char*
。
相关文章:
- MacOS通过在莫哈韦"wchar.h"下破碎的自制啤酒发出叮当声
- 在C++中使用Cstring反转字符串
- 如何转换真实路径 CString c++
- VS Code C++:不准确的系统包括路径错误(wchar.h,boost/lambda/lambda.hpp)
- 'const char*'和'WCHAR*'
- 为什么需要与 WCHAR 相关的代码处理
- __int64 CString 返回错误的值 - C++ MFC
- 如何将 SHFileOperation() 与 CString 路径一起使用
- 无法使用 mingw-w64 g++ 编译:找不到 <wchar.h>
- 在_T值中使用 CString
- 没有大小参数的CString::GetBuffer()做什么
- 无法将参数 1 从 WCHAR 转换为常量字符 *
- 如何将 CString 转换为字节 [] 数组?
- 无法使用 swprintf 在 WCHAR* 中打印字符*
- -fshort-wchar 和 std::wstring - 分段错误
- 我应该使用 wchar 还是 char 来加密?
- 可视化 如何将 CString 值列表添加到 MFC C++ 中的组合框中?
- 【MacOSX 10.15.1】使用 odb 生成数据库,致命错误:wchar.h:没有这样的文件或目录 #include < wchar.h>
- 如何将CString转换为使用WCHAR的Windows API和自定义函数?
- 如何将WCHAR转换为CString