EnzoFerber
(usa FreeBSD)
Enviado em 04/10/2010 - 10:31h
Olá,
Você pode fazer um programa desses, ou pode usar uma função chamada setlocale(). ($ man setlocale)
Ela muda as configurações de regionalidade do programa.
/* setlocale.c */
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <locale.h>
int main ( void )
{
float f = 1.234;
setlocale ( LC_ALL , "pt_BR" );
printf ( "%f\n", f );
setlocale ( LC_ALL, "en_US" );
printf ( "%f\n", f );
return 0;
}
/* EoF */
Para ver todos os idiomas que você pode usar:
$ locale -a
Agora, se ainda assim quiser um programa que converta a virgula digitada em ponto:
void swap ( char *str )
{
float f;
char *p = str;
while ( *(p++) ) if ( *p == ',' ) *p = '.';
f = atof ( str );
printf ( "Float: %f\n", f );
}
Espero ter ajudado,
Enzo Ferber
[]'s