繁体   English   中英

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。 我阅读了很多其他的 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM