我正在做一个分布式程序(我不知道这是不是我用西班牙语学到的词),我需要在某些进程之间发送和接收消息,乍一看很简单。

当我想在同一条消息中发送两个整数时,它变得很复杂。使用send()只能发送char *,因此我使用了以下方法:

string s = to_string(valla) + " " + to_string(tiempo);
const char* buffNum = s.c_str();


一切都好,直到我必须接收并“解码”消息为止。因此,如果我收到一个数字,我可以使用atoi(),那么现在的问题是,当我收到两个数字时,该怎么办?

提前致谢。

最佳答案

const char* buffNum = s.c_str();


更改buffNum或超出范围后,将产生取消引用s的不确定行为。



要确定您的字符串是否正确,要解码,请使用std::istringstream

std::istringstream iss(buffNum);

int num1, num2;

iss >> num1 >> num2;

10-06 13:32