The permanent este o Bibliotecă standard C++ funcție care convertește un șir într-un număr întreg. Inseamna „șir în întreg” . Ia un șir ca intrare și returnează valoarea întregă corespunzătoare. Funcția poate ridica o excepție de tip std::argument_invalid dacă șirul de intrare nu reprezintă un număr întreg valid.
Exemple de utilizare a stoi în C++:
#include #include int main() { std::string str1 = '123'; int num1 = std::stoi(str1); std::cout<< num1 << std::endl; // Output: 123 std::string str2 = '-456'; int num2 = std::stoi(str2); std::cout<< num2 << std::endl; // Output: -456 std::string str3 = '7.89'; try { int num3 = std::stoi(str3); } catch (std::invalid_argument&e) { std::cout<< 'Invalid argument: ' << str3 << std::endl; } return 0; }
Ieșire
123 -456
În primul exemplu, șirul '123' este convertit în număr întreg 123 . În al doilea exemplu, șirul „-456” este convertit în număr întreg -456 . În al treilea exemplu, șirul „7.89” nu este un număr întreg valid, deci a std::argument_invalid se aruncă excepție.
Alt exemplu de fragment de cod:
#include #include int main() { std::string str1 = '100'; int num1 = std::stoi(str1); std::cout<< num1 << std::endl; // Output: 100 std::string str2 = '200'; int num2 = std::stoi(str2, 0, 16); std::cout<< num2 << std::endl; // Output: 512 std::string str3 = '300'; int num3 = std::stoi(str3, nullptr, 8); std::cout<< num3 << std::endl; // Output: 192 std::string str4 = 'abc'; try { int num4 = std::stoi(str4); } catch (std::invalid_argument&e) { std::cout<< 'Invalid argument: ' << str4 << std::endl; } return 0; }
Ieșire
100 512 192 Invalid argument: abc
Primul exemplu convertește șirul '100' la numărul întreg zecimal 100 . În al doilea exemplu, șirul '200' este convertit în număr întreg hexazecimal 512 prin trecere 0 ca al doilea argument şi 16 ca al treilea argument la permanent .
În al treilea exemplu, șirul '300' este convertit în număr întreg octal 192 prin trecere nullptr ca al doilea argument şi 8 ca al treilea argument la stoi.
În al patrulea exemplu, șirul „abc” nu este un număr întreg valid, deci a std::argument_invalid se aruncă excepție.