【问题标题】:How to change my string to an int for us of supplying to socket如何将我的字符串更改为 int 以便我们提供给套接字
【发布时间】:2016-09-09 14:03:55
【问题描述】:

我有一个带有以下内容的 *.ini 文件

[Settings]
Server=server.myserver.com
Port=6500

我正在使用 SimpleIni 库。现在我的问题是,我可以很容易地从 ini 中获取这两个变量。但是,当向我的套接字提供端口时,它不是整数。可使用的简化代码版本。最终,我无法将 sPort 转换为整数,以便将其分配给 int Port。

int main(int argc, char *argv[])
{
int Port;
  string sPort="6500";
    Port += atoi(sPort.c_str());
    cout<<sPort + "\n";
    cout<<Port;
c.conn(ini.GetValue("Settings","Server","") , Port);

}

我已经尝试过 stoi(),但它不起作用。我已经尝试过上面的 atoi() 并且它至少可以运行,但返回的随机数不是 6500。6500 是我需要的端口的幻数。有人对从这里去哪里有任何建议吗?

【问题讨论】:

  • atoi() ltoi(), sscanf(), stoi() 等等..
  • 使用 stoi()、stol()、stod() 等

标签: c++ string int atoi


【解决方案1】:

Port 变量应该被初始化(到0)。如果不是,它会得到一个随机值。

或者只使用= 而不是+=

std::stoi 是 C++11 的特性,你的编译器版本中可能没有它。

【讨论】:

  • 很棒的酱汁……效果很好。感谢您的快速回复。绝对是最佳答案。!!!
  • 这是唯一的答案,是的,这是最好的。如果它适合你,请考虑接受它。
猜你喜欢
  • 2011-11-03
  • 1970-01-01
  • 1970-01-01
  • 2022-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多