c++ - C++的一些转换题

标签 c++ char int type-conversion

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

当我想在同一条消息中发送两个整数时,事情就变得复杂了。使用 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/

相关文章:

c - 将 char 缓冲区传递给函数并获取缓冲区的大小

c - 使用 sscanf 提取括号中嵌入的整数

java - 如何修复数组的前三个元素(一直显示为零)?

c - 如何用特定的整数值替换字符串中的字母?

c++ - "be representable in execution character set"是什么意思?

c++ - 从 double 转换为 int 时值发生变化

c++ - 从 DLL(游戏 AI 库)调用成员函数

c++ - WinSxS 无法加载 VC++ DLL

c++ - 为什么我无法从 std::stringstream 二进制流中获得完整精度( double 、 float )

c++ - 读写 QGraphicsScene 到二进制文件