如何解决在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
很粗糙。将%s
与printf
一起使用将假定您传递给它的内容中的第一个指针大小的字节实际上是指向字符串的指针(也称为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 举报,一经查实,本站将立刻删除。