如何在std :: stoi中修复“ std :: invalid_argument”

时间:2019-07-11 13:41:24

标签: c++ c++11 c-strings

我试图做一个套接字服务器,但是当我尝试传递数字时,我得到了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 个答案:

答案 0 :(得分:2)

CheckboxRequiredValidator

char texto[5]; strcat(texto,a.c_str()); 未初始化,因此包含垃圾值。 texto首先必须阅读它们以寻找NUL终止符,从而为您提供不确定的行为。

您可能正在寻找strcat而不是strcpy