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
   | #include <stdio.h>
#include <stdlib.h>
#include <locale.h>
 
int main (void)
{
   double var;
   char chaine[] = "166.35";
   char chaine2[] = "166,35";
   /* sans setlocale() ===================================================== */
   puts("sans setlocale()");
 
   printf("%s avec strtod() : %g\n", 
           chaine, strtod(chaine, NULL));
   printf("%s avec strtod() : %g\n", 
           chaine2, strtod(chaine2, NULL));
 
   sscanf(chaine, "%lg", &var);
   printf("%s avec sscanf() : %g\n", chaine, var);
   sscanf(chaine2, "%lg", &var);
   printf("%s avec sscanf() : %g\n", chaine2, var);
 
   /* sans setlocale() ===================================================== */   
   setlocale(LC_ALL, "");/* on prend en compte les spécificités locales */
   puts("avec setlocale()");
 
   printf("%s avec strtod() : %g\n", 
           chaine, strtod(chaine, NULL));
   printf("%s avec strtod() : %g\n", 
           chaine2, strtod(chaine2, NULL));
 
   sscanf(chaine, "%lg", &var);
   printf("%s avec sscanf() : %g\n", chaine, var);
   sscanf(chaine2, "%lg", &var);
   printf("%s avec sscanf() : %g\n", chaine2, var);
 
   getchar();
   return EXIT_SUCCESS;
} | 
Partager