我正在做一个分布式程序(我不知道是不是这个词,我是用西类牙语学的),我需要在一些进程之间发送和接收消息,乍一看很简单。
当我想在同一条消息中发送两个整数时,事情就变得复杂了。使用 send() 你只能发送 char* 所以我用了这个:
string s = to_string(valla) + " " + to_string(tiempo);
const char* buffNum = s.c_str();
一切都很好,直到我必须接收并“解码”消息。因此,如果我收到一个数字,我可以使用 atoi(),现在的问题是,当我收到两个时,我该怎么做?
提前致谢。
最佳答案
const char* buffNum = s.c_str();
一旦 s
被更改或超出范围,就会产生取消引用 buffNum
的未定义行为。
要解码 如果您确定您的字符串没问题,请使用 std::istringstream
:
std::istringstream iss(buffNum);
int num1, num2;
iss >> num1 >> num2;
关于c++ - C++的一些转换题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34597492/