【问题标题】:Some conversion questions for C++C++的一些转换问题
【发布时间】:2016-01-04 18:29:19
【问题描述】:

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

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

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

在我必须接收并“解码”消息之前一切顺利。因此,如果我收到一个号码,我可以使用 atoi(),现在的问题是,当我收到两个号码时,我该怎么做?

提前致谢。

【问题讨论】:

标签: c++ char int type-conversion


【解决方案1】:
const char* buffNum = s.c_str();

一旦s 更改或超出范围,就会产生取消引用buffNum 的未定义行为。


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

std::istringstream iss(buffNum);

int num1, num2;

iss >> num1 >> num2;

【讨论】:

  • buffNums 没问题。能否请您详细说明std::istringstream的用法?
  • @dari1495 你有什么特别不明白的?
  • 没问题,我看到你编辑了一个例子,现在一切都清楚了,谢谢
  • 我现在有一个问题,当我收到消息时它实际上是char buffNum[100] 并且编译器说类型不完整:(
  • @dari1495 完全不相关的问题。请再问一个问题。不要忘记提供minimal reproducible example,让每个人都能重现您的问题,并在您的新问题中逐字显示错误消息。
猜你喜欢
  • 1970-01-01
  • 2013-11-17
  • 2018-11-02
  • 2016-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多