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

时间:2016-09-09 14:03:56

标签: c++ string int atoi

我的* .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是我需要的神奇数字。有人建议从哪里去?

1 个答案:

答案 0 :(得分:3)

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

或者只使用=代替+=

std::stoi是C ++ 11的功能,您的编译器版本可能没有。