如何将我的字符串更改为 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 后拒绝应用程序