如何将我的字符串更改为 int 以便我们提供给套接字

Posted

技术标签:

【中文标题】如何将我的字符串更改为 int 以便我们提供给套接字【英文标题】:How to change my string to an int for us of supplying to socket 【发布时间】: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() 等 【参考方案1】:

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

或者只使用= 而不是+=

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

【讨论】:

很棒的酱汁……效果很好。感谢您的快速回复。绝对是最佳答案。!!! 这是唯一的答案,是的,这是最好的。如果它适合你,请考虑接受它。

以上是关于如何将我的字符串更改为 int 以便我们提供给套接字的主要内容,如果未能解决你的问题,请参考以下文章

如何在laravel迁移中将数据类型float更改为string

BigQuery:如何将我的一列的类型从 INTEGER 更改为 STRING?

ListAdapter 在将数组类型更改为 int 后拒绝应用程序

我想将我的 dexie 值更改为空字符串

如何将我的自定义接收器 chromecast(CAF)的媒体播放器更改为另一个播放器

如何将我的网址更改为用户友好的网址 [重复]