C++ 将字符转换为 CString
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。
我阅读了很多其他 Whosebug 解决方案,但没有找到对我有用的东西。像 MultiByteToWideChar 之类的...有人可以帮助我并告诉我我的错在哪里吗?
例如解释了 here,你可以一次性将整个缓冲区转换为 CString
,而无需内部循环:
while ((dwRead = sourceFile.Read(buffer, 4096)) > 0) {
CString block (buffer, dwRead);
temp += block;
}
temp = _T("");
不需要;默认构造的 CString
(即像 CString temp;
这样创建的)自动为空字符串。
如果你真的需要追加一个字符,你可以这样做temp += someChar;
。
之前我查看了每个论坛上所有类似的帖子,但没有找到适合我的解决方案。 我是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。 我阅读了很多其他 Whosebug 解决方案,但没有找到对我有用的东西。像 MultiByteToWideChar 之类的...有人可以帮助我并告诉我我的错在哪里吗?
例如解释了 here,你可以一次性将整个缓冲区转换为 CString
,而无需内部循环:
while ((dwRead = sourceFile.Read(buffer, 4096)) > 0) {
CString block (buffer, dwRead);
temp += block;
}
temp = _T("");
不需要;默认构造的 CString
(即像 CString temp;
这样创建的)自动为空字符串。
如果你真的需要追加一个字符,你可以这样做temp += someChar;
。