在 C++ 中将 long 转换为 CString
Posted
技术标签:
【中文标题】在 C++ 中将 long 转换为 CString【英文标题】:Convert long to a CString in C++ 【发布时间】:2014-10-30 18:45:47 【问题描述】:我正在使用 Visual Studio 2008 IDE 使用 C++。我需要将 long 转换为 CString(或其他可以很好地与 CString 配合使用的格式)。转换完成后,我需要将其连接到另一个 CString。像这样的东西(但欢迎提出建议):
CString = CString + convertToCString(long)
问题 1:什么是最佳方式(请解释为什么一种方法优于其他方法)?
目前,我正在使用 _ltow_s:
CString = CString + _ltow_s (long)
_ltow_s 正在返回 WCHAR。所以我最终得到:
CString = CString + WCHAR
问题 2:这种连接是否安全并且会产生预期的结果? 'CString + WCHAR' 结果的串联是否带有有效的 CString?
问题 3: 如果我们正在使用 _ltow_s,那么需要分配的缓冲区大小是多少? 32?另外,是否有以 10 为底的定义(十进制)?
更新: 我找到了这个帖子:How to cast a LONG to a CString? 我喜欢它,因为它提供了很多选择。仍然缺少的是不同场景(在合理范围内)的首选方式。鲁棒性、安全性等...
【问题讨论】:
【参考方案1】:试试这个:
CString cstr;
cstr.Format("%ld", long);
【讨论】:
谢谢。什么是'cs'?它来自哪里? 认为应该是 cstr.Format("%ld",long); @robert,为了更清楚,我更新了问题 1(请解释为什么一种方法优于其他方法)。 你想要一个 CString 结果。因此,使用 CString::Format 函数在 (1) 清晰度/可读性方面具有优势,并且 (2) 您不必像为 _ltow_s 所做的那样创建缓冲区。 这不是一个完整的答案,但它是迄今为止唯一的答案。我会接受的……以上是关于在 C++ 中将 long 转换为 CString的主要内容,如果未能解决你的问题,请参考以下文章