2016-01-04 26 views
0

我正在做一个分布式程序(我不知道这是否是这个词,我用西班牙语学习),我需要在一些进程之间发送和接收消息,很简单第一眼。C++的一些转换问题

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

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

所有的好,直到我必须接收和'解码'消息。所以,如果我收到一个单一的号码,我可以使用atoi(),现在的问题是,当我收到两个时,我该怎么做?

在此先感谢。

+1

您正在寻找[连载](https://en.wikipedia.org/wiki/序列化)。 – IInspectable

回答

6
const char* buffNum = s.c_str(); 

产生不确定的行为提领buffNum,尽快s改变或超出范围。


解码如果你确定你的字符串是好的,使用std::istringstream

std::istringstream iss(buffNum); 

int num1, num2; 

iss >> num1 >> num2; 
+0

'buffNum'和's'都很好。你可以详细说明使用'std :: istringstream'吗? – dari1495

+0

@ dari1495你不明白什么? –

+0

没问题,我看你编了一个例子,现在都清楚了,谢谢 – dari1495