我正在尝试编写一个函数,它将向服务器发送一些消息。发送消息工作得很好,尽管我无法从标准输入中加载带有空格的消息......所以当我输入时"Hello world!"
,我会得到这样的输出:
*******Hello********
*******World!********
我很陌生C++
,这种行为让我很惊讶。有人能解释一下,为什么会这样,以及如何解决它?
void * Client::sendMessage(void *threadid) {
string message;
const char * c;
char buffer[200];
int fd = (long) threadid;
while (true) {
cin >> message;
if (message == "exit") {
break;
}
cout<<"*******"<<message<<"********"<<endl;
c = message.c_str();
strncpy(buffer, c, sizeof ( buffer));
send(fd, buffer, strlen(buffer), 0);
}
}