微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在C ++中将char数组转换为CString

如何解决在C ++中将char数组转换为CString

我无法将char *转换为CString。.最后2条打印行不打印任何内容...我需要将它作为cstring的一部分,以便能够将其传递给函数

char result[500];
strcpy(result,"\\\\.\\pipe\\");                    
strcat(result,a["BLOB"][i].GetString());// just appending to "result" a string I am reading from json file..
CString  temp(result);
printf("\n1-The pipeName we are looking at is %s \n",result);
printf("\n2-The pipeName we are looking at is %s \n",temp);
printf("\n3-The pipeName we are looking at is %s \n",CString(result,500));

解决方法

printf很粗糙。将%sprintf一起使用将假定您传递给它的内容中的第一个指针大小的字节实际上是指向字符串的指针(也称为char*)。

CString可能正确,也可能不正确。在您的情况下,似乎并非如此。

要使用printf,您需要执行以下操作:

printf("\n2-The pipeName we are looking at is %s \n",temp.GetString());

否则,请停止使用printf并使用类型安全性更高的内容,例如cout

,

将字符串直接构建到order中,并在打印时使用内置到CString的强制转换。

const char *
,

printf()怎么知道CString是什么?什么课?如何将CString转换为C样式的字符串?

这按预期工作。

基于MFC / WFC还提供CString的假设,您正在寻找的内容可能已记录在here中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。