Как изменить мою строку на 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, у вас может не быть ее в вашей версии компилятора.