Как изменить мою строку на int для нас поставки в сокет

У меня есть *.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 ответ

Port переменная должна быть инициализирована (чтобы 0). Если это не так, он получает случайное значение.

Или просто использовать = вместо +=,

std::stoi это особенность C++11, у вас может не быть ее в вашей версии компилятора.

Другие вопросы по тегам