[英]C++ Convert char to CString
在我查看每个论坛上的所有类似主题之前,我没有找到适合我的解决方案。 我是 C++ 的初学者,所以请不要对我太严格。
我的问题是我想打开一个文件,并用缓冲区读取字符。 然后我想将它们转换为 CString。
CString buffer;
CString temp;
...
BYTE buffer[4096] ;
DWORD dwRead ;
temp = _T("");
do
{
dwRead = sourceFile.Read(buffer, 4096) ;
for (int i = 0; i < 4096; i++)
{
temp = temp + ((CString) (char)buffer[i]);
}
}
--> 问题是缓冲区只能作为字符读取。 我不知道将它转换为 CString。 我阅读了很多其他的 stackoverflow 解决方案,但没有发现任何对我有用的方法。 像 MultiByteToWideChar 之类的......有人可以帮助我并告诉我我的错在哪里吗?
正如这里解释的那样,您可以一次性将整个缓冲区转换为CString
,而无需内部循环:
while ((dwRead = sourceFile.Read(buffer, 4096)) > 0) {
CString block (buffer, dwRead);
temp += block;
}
temp = _T("");
是不必要的; 默认构造的CString
(即像CString temp;
那样创建的)自动是一个空字符串。
如果你真的需要附加一个字符,你可以做temp += someChar;
.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.