我想寫一個函數,它應該發送一些消息到服務器。發送消息的工作相當精細,neverthless我不能用空格來加載從標準輸入信息......所以,當我鍵入"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);
}
}
'cin >> message'停止讀取空白處。 – chris