一些C ++的转换问题

时间:2016-01-04 18:29:20

标签: c++ char int type-conversion

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

当我想在同一条消息中发送两个整数时,它会变得复杂。使用send(),你只能发送char *所以我使用了这个:

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

一切都很好,直到我必须收到并“解码”该消息。所以,如果我收到一个号码,我可以使用atoi(),现在的问题是,当我收到两个号码时,我该怎么做呢?

提前致谢。

1 个答案:

答案 0 :(得分:6)

const char* buffNum = s.c_str();

产生未定义的行为解除引用buffNum,因为s很快就会更改或超出范围。

如果你确定你的字符串没问题,要解码,请使用std::istringstream

std::istringstream iss(buffNum);

int num1, num2;

iss >> num1 >> num2;