我正在构建一个 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* 的命令?