#include <stdlib.h> // <cstdlib> en C++
long atol( const char * theString );
Cette fonction permet de transformer une chaîne de caractères, représentant une valeur entière longue, en une valeur numérique de type long
.
Le terme d'atol
est un acronyme signifiant : ASCII to long.
atol
retourne la valeur 0L si la chaîne de caractères ne contient pas une représentation de valeur numérique.
Du coup, il n'est pas possible de distinguer la chaîne "0"
d'une chaîne ne contenant pas un nombre entier.
Si vous avez cette difficulté, veuillez préférer l'utilisation de la fonction strtol
qui permet bien de distinguer les deux cas.
long
.
Si la chaîne à convertir ne contient pas une donnée numérique entière, la valeur 0 vous sera retournée.
Sinon, une valeur de type long
équivalente à la chaîne passée en paramètre vous sera retournée.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
#include <stdio.h> #include <stdlib.h> int main( int argc, char * argv[] ) { /* * Doit-on afficher l'usage de la commande. */ if ( argc == 1 ) { printf( "Usage: %s longValue ...\n", argv[0] ); exit( EXIT_SUCCESS ); } /* * On passe le nom de l'exécutable qui est * en première position dans les arguments. */ argc--; argv++; long sum = 0; /* * On somme toutes les valeurs passées en arguments de programme. * Pour ce faire on déplace le pointeur argv pour scanner tous les arguments. */ while ( argc != 0 ) { sum += atol( *argv++ ); argc--; } /* * Et on affiche le résultat */ printf( "La somme des valeurs saisies est de %ld.\n", sum ); return EXIT_SUCCESS; } |
Et voici le résultat produit par cet exemple.
$> gcc -o sample sample.c $> ./sample 10000000000 20000000000 La somme des valeurs saisies est de 30000000000. $>
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :