我正在构建一个ftp服务器,这是从客户端发送到服务器的消息,用于检查服务器是否批准了文件大小。 我需要在函数write中使用char *,所以我想将字符串转换为char *。字符串结构是fileName#fileSize(test.txt#37)。我试过c_str但最后还是垃圾了。
让我们看看以下代码:
string str(filenameDes);
str += HASHTAG;
str += to_string(fileSize);
cout << "str: " << str << endl;
char * pchar = str.c_str();
// sending file size to server
int retVal = write(socket, pchar, strlen(pchar));
虽然当我想使用cout在服务器中打印消息时,我得到这个输出: test2#37 或接近它的东西,这意味着我最终会变得垃圾。
我如何清理垃圾?或任何其他命令转换为char *?
答案 0 :(得分:0)
问题在于,当我收到带有char数组的消息时,我没有在所有单元格中使用\ 0进行初始化。当你不知道你会得到多长时间的消息时,这就解决了这个问题。非常感谢PaulMcKenzie。