Как исправить "std :: invalid_argument" в std :: stoi - PullRequest
1 голос
/ 11 июля 2019

Я пытаюсь создать сервер сокетов, но когда я пытался передать числа, я получил std::invalid_argument, и я не знаю почему.Я переделал код, чтобы сделать его более простым, и вот он:

std::string a = std::to_string(32);
char texto[5];
strcat(texto,a.c_str());
printf("%s", texto);//Isn't printing a string that you can convert to a number
std::string b = texto;
int s = std::stoi(texto);
std::cout << s;

Я ожидаю вывод 32, но я получаю ошибку.

1 Ответ

2 голосов
/ 11 июля 2019
char texto[5];
strcat(texto,a.c_str());

texto не инициализируется, поэтому он содержит значения мусора. strcat придется начать с чтения их в поисках терминатора NUL, что даст вам неопределенное поведение.

Вы вероятно искали strcpy вместо strcat.

...