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;