-2

Galera, bom dia. Estou iniciando na programação C (venho do Python e do JavaScript).

Tenho um problema para usar a função setLocale, que define o tipo de linguagem utilizada, permitindo o uso de acentuação e etc. Quando coloco a função no meu programa e digito qualquer valor com o uso do ponto (exemplo: 0.4) o programa termina instataneamente. Sei que o erro é no setLocale, porque quando tiro a função o programa roda como o esperado.

Abaixo está meu código:

inserir a descrição da imagem aqui

Obs: O objetivo do uso do SetLocale (que é usar acentuação e tals) funciona corretamente, só não entendo o erro.

1
  • 1
    Inclua o código sempre como texto e formate-o com Ctrl-k ou utilizando o botão {} do editor
    – Isac
    Commented 5/03/2018 às 0:21

4 Respostas 4

0

Olá, acredito que o seu problema seja que o setlocale() esteja passando a base numérica brasileira onde usamos "," no lugar de "." que é o padrão. Tente rodar seu código utilizando vírgulas, deve funcionar.

1
0

A chamada de setlocale( LC_ALL, "" ); (com o segundo parametro em branco), faz com que o locale padrão do programa seja setado automaticamente conforme as variáveis de ambiente do seu sistema:

#include <stdio.h>
#include <locale.h>

int main(void)
{
    setlocale( LC_ALL, "" );
    printf( "ÁÉÍÓÚ\n" );
    return 0;
}
0
#include <stdio.h>
#include <locale.h>
int main(){
    setlocale(LC_ALL, "Portuguese");
    printf("Olá Mundo");
    return 0;
}

A primeira letra deve ser maiúscula, o Lacobus te deu uma dica para ser setado automaticamente o setlocale do seu programa, mas se você quiser fazer manualmente, escreva Portuguese com a primeira letra maiúscula.

0

Prove: setlocale(LC_ALL, "portuguese-brazilian");

Você deve fazer log-in para responder a esta pergunta.

Esta não é a resposta que você está procurando? Pesquise outras perguntas com a tag .