logo

fonction std :: stol en C++

Dans cet article, vous découvrirez la fonction std::stol en C++ avec sa syntaxe et ses exemples.

Qu'est-ce que std::stol() ?

Le Bibliothèque de modèles standard (STL) en C++ inclut le std::stol() fonction, spécialement conçue pour la conversion chaînes en entiers longs . Cette fonction est particulièrement utile lorsque vous travaillez avec des entrées utilisateur ou lorsque vous lisez des données provenant de sources externes, où les entrées sont généralement fournies sous forme de chaîne. Il renvoie l'entier long équivalent après avoir reçu une chaîne en entrée. Une exception de type std::invalid_argument ou std::out_of_range est levée si la conversion n'est pas possible ou si la chaîne d'entrée contient des caractères qui ne font pas partie d'un nombre valide.

Syntaxe:

Il a la syntaxe suivante :

long std::stol(const std::string& str, size_t* pos = 0, int base = 10);

chaîne remplacer tout java

str : Le texte qui doit être transformé en un entier long.

Pos : L'index du premier caractère non converti de la chaîne, stocké sous forme de pointeur vers un objet size_t. S'il n'est pas requis, ce paramètre facultatif peut être défini sur nullptr.

base: La base numérique de la conversion. Dix est la valeur par défaut.

longueur de tableau en Java

Valeur de retour : La valeur numérique analysée à partir de la chaîne d'entrée est renvoyée par la fonction sous la forme d'un entier long.

Des exceptions: La fonction lève une exception si la conversion ne peut pas être terminée ou si les caractères de la chaîne d'entrée ne sont pas valides. Si aucune conversion n'a pu être effectuée, les exceptions possibles sont std :: invalid_argument et std :: out_of_range si la valeur convertie est supérieure à la plage représentable pendant une longue période.

Cas d'utilisation :

    Traitement des entrées par les utilisateurs :

std::stol() est utile pour transformer les entrées numériques reçues des utilisateurs sous forme de chaîne en un type numérique afin qu'elles puissent être traitées ultérieurement.

    Fichier d'entrée/sortie :

Lecture de données numériques dans des fichiers contenant des chaînes comme représentation des données.

    La validation des données:

La validation des données consiste à confirmer que les entrées de l'utilisateur représentent avec précision les nombres longs en les validant et en les vérifiant.

Exemple de programme 1 :

Prenons un exemple pour illustrer l'utilisation de std :: fonction stol en C++.

 #include #include int main() { std::string numStr = '12345'; try { long result = std::stol(numStr); std::cout << 'Converted value: ' << result << std::endl; } catch (const std::invalid_argument& e) { std::cerr << 'Invalid argument: ' << e.what() << std::endl; } catch (const std::out_of_range& e) { std::cerr << 'Out of range: ' << e.what() << std::endl; } return 0; } 

Sortir:

boto3
fonction std :: stol en C++

Explication:

    Initialisation :
    • Une variable chaîne appelée numStr est initialisé avec la valeur '12345' en début de programme.
    Essayez de bloquer :
    • Le code se déplace dans un bloc try, signalant qu'il va essayer d'exécuter les instructions qu'il contient. Les exceptions potentielles sont traitées ici.
    Tentative de conversion :
    • Le programme essaie d'utiliser std::stol() pour transformer la chaîne numStr en un entier long à l'intérieur du bloc try.
    Conversion efficace :
    • Le résultat est conservé dans la variable result si la conversion réussit.
    Valeur convertie en sortie :
    • Le nombre converti avec succès est ensuite imprimé sur la sortie standard par le programme.
    Traitement des exceptions :
    • L'un des blocs catch gère toutes les exceptions qui surviennent lors de la conversion.
    Exception pour la détection d'arguments invalides :
    • Un message d'erreur indiquant que l'argument n'est pas valide est imprimé si l'exception est du type std::invalid_argument.
    Exception pour les captures hors de portée :
    • Un message d'erreur indiquant que le résultat de la conversion est en dehors de la plage valide est imprimé si l'exception est du type std::out_of_range.
    Politique de retour:
    • Le programme renvoie 0 au système d'exploitation, ce qui signifie une exécution réussie et la fonction principale se termine.

En bref, le code tente d'utiliser le std::stol() fonction à l'intérieur d'un bloc try pour convertir la chaîne '12345' en un entier long. Le résultat est imprimé si la conversion réussit. Il capture les exceptions et imprime le message d'erreur correspondant si cela se produit (soit à cause d'un argument incorrect, soit parce que le résultat est hors plage).

Enfin, le programme renvoie 0, ce qui signifie qu'il est terminé avec succès.

java booléen

Exemple de programme 2 :

Prenons un autre exemple pour illustrer l'utilisation de std :: fonction stol en C++.

 #include #include int main() { std::cout << 'Enter numeric strings to convert to long integers (type 'exit' to end):
'; while (true) { std::string userInput; std::cout <> userInput; if (userInput == 'exit') { std::cout << 'Exiting program. Goodbye!
'; break; } try { long result = std::stol(userInput); std::cout << 'Converted Value: ' << result << std::endl; } catch (const std::invalid_argument& e) { std::cerr << 'Error: Invalid argument in input '' << userInput << '': ' << e.what() << std::endl; } catch (const std::out_of_range& e) { std::cerr << 'Error: Out of range for input '' << userInput << '': ' << e.what() << std::endl; } } return 0; } 

Sortir:

fonction std :: stol en C++

Explication :

  • Dans cet exemple, l'utilisateur est invité à saisir les valeurs de chaîne à convertir.
  • L'application continuera à accepter les entrées de l'utilisateur jusqu'à ce que l'utilisateur entre 'sortie' en utilisant une boucle while.
  • Std :: cin est utilisé à l'intérieur de la boucle pour lire les entrées de l'utilisateur.
  • Entrer 'sortie' amène ce programme à imprimer un message d'adieu et à terminer la boucle.
  • Sinon, il essaie d'utiliser std :: volé pour convertir l'entrée en un long.
  • La valeur convertie est imprimée si la conversion réussit.
  • Il détecte les exceptions (arguments invalides, hors plage), imprime un message d'erreur et continue.
  • En attendant une nouvelle entrée utilisateur, la boucle passe à l'itération suivante.