The stovint yra C++ standartinė biblioteka funkcija, kuri paverčia eilutę į sveikąjį skaičių. Tai reiškia 'eilutė į sveikąjį skaičių' . Ji paima eilutę kaip įvestį ir grąžina atitinkamą sveikojo skaičiaus reikšmę. Funkcija gali sukelti tipo išimtį std::negaliojantis_argumentas jei įvesties eilutė neatspindi tinkamo sveikojo skaičiaus.
kokio dydžio mano monitoriaus ekranas
Stoi naudojimo C++ pavyzdžiai:
#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; }
Išvestis
123 -456
Pirmame pavyzdyje eilutė '123' paverčiamas sveikuoju skaičiumi 123 . Antrame pavyzdyje eilutė '-456' paverčiamas sveikuoju skaičiumi -456 . Trečiame pavyzdyje eilutė „7.89“ nėra tinkamas sveikasis skaičius, todėl a std::negaliojantis_argumentas išmetama išimtis.
Kitas kodo fragmento pavyzdys:
#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; }
Išvestis
100 512 192 Invalid argument: abc
Pirmasis pavyzdys konvertuoja eilutę '100' iki sveikojo skaičiaus po kablelio 100 . Antrame pavyzdyje eilutė '200' konvertuojamas į šešioliktainį sveikąjį skaičių 512 pravažiuojant 0 kaip antrasis argumentas ir 16 kaip trečiasis argumentas stovint .
Trečiame pavyzdyje eilutė '300' konvertuojamas į aštuntąjį sveikąjį skaičių 192 pravažiuojant nullptr kaip antrasis argumentas ir 8 kaip trečiasis argumentas stoi.
pakeisti java eilutę
Ketvirtajame pavyzdyje eilutė 'abc' nėra galiojantis sveikasis skaičius, todėl a std::negaliojantis_argumentas išmetama išimtis.