Ir ao conteúdo
  • Cadastre-se

C Acentuação em C, setlocale(LC_ALL, "portuguese-brazilian"); biblioteca locale.h


Malcolm X

Posts recomendados

/*Uma empresa vende o mesmo produto para quatro diferentes estados. Cada estado
possui uma taxa diferente de imposto sobre o produto (MG 7%; SP 12%; RJ 15%; MS
8%). Fac¸a um programa em que o usu´ ario entre com o valor e o estado destino do
produto e o programa retorne o prec¸o final do produto acrescido do imposto do estado
em que ele ser´a vendido. Se o estado digitado n˜ao for v´ alido, mostrar uma mensagem
de erro.*/

main()
{

    setlocale(LC_ALL, "Portuguese");
    int valor,opc;
    printf("Digite o valor do produto: ");
    scanf("%d",&valor);
    printf("Escolha o estado.\n");
    printf("Escolha - Estado = Imposto\n");
    printf("   1   -   MG    =  7%%\n   2   -   MS    =  8%%\n");
    printf("   3   -   SP    =  12%%\n   4   -   RJ    =  15%%\n");
    printf("Escolha: ");
    scanf(" %d",&opc);

    switch(opc)
    {
        case 1:
        {
            printf("Estado escolhido: Minas Gerais - Taxa de imposto 7%%.\n");
            printf("O preço final do produto com o imposto é R$%d\n",valor+(valor*0,07));
            break;
        }
        case 2:
        {
            printf("Estado escolhido: Mato Grosso do Sul - Taxa de imposto 8%%.\n");
            printf("O preço final do produto com o imposto é R$%d\n",valor+(valor*(8/100)));
            break;
        }
        case 3:
        {
            printf("Estado escolhido: São Paulo - Taxa de imposto 12%%.\n");
            printf("O preço final do produto com o imposto é R$%d\n",valor+(valor*0,12));
            break;
        }
        case 4:
        {
            printf("Estado escolhido: Rio de Janeiro - Taxa de imposto 15%%.\n");
            printf("O preço final do produto com o imposto é R$%d\n",valor+(valor*0,15));
            break;
        }
        default:
        {
            printf("O estado não foi escolhido corretamente.\n");
            break;
        }
    }

}

Pessoal estou com um problema. Parece que não estou o meu CodeBlocks não está mais funcionando a biblioteca ocale.h, antigamente conseguia. Mas mesmo declarando #include <locale.h>, e o setlocale(LC_ALL, "portuguese-brazilian"); , os caracteres especiais não aparecem.

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Malcolm X disse:

Pessoal estou com um problema. Parece que não estou o meu CodeBlocks não está mais funcionando a biblioteca ocale.h, antigamente conseguia

 

locale.h é apenas um arquivo. Se o Code::Blocks não o enconmtrasse daria um erro. O problema não é esse. Use o código de linguagem correto. Veja no próprio include, por exemplo. "pt-br" deve funcionar. É uma norma ANSI.

 

Pode usar 
 

    locale -a 

 

no Windows e ver a lista...
 


pl_PL.utf8
prs_AF
prs_AF.utf8
ps_AF
ps_AF.utf8
pt_BR
pt_BR.utf8
pt_PT
pt_PT.utf8
pt_PT@euro
quc_GT
quc_GT.utf8
quz_BO
quz_BO.utf8
quz_EC

 

Eis um pedaço do que tem na minha máquina de agora... Não tem isso que escreveu... "Portuguese" então não é surpresa não funcionar... 

 

Porque não testou o retorno de setlocale()? Nem mesmo quando não apareceram os acentos? Deve retornar NULL se deu erro. 

 

Leu a documentação? Seu IDE não mostra o protótipo ao menos? Não mostra a documentação? Mude de IDE então. Não sentirá falta desse Code::Blocks. Apenas não mude para o Dev-C++.

 

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

6 horas atrás, arfneto disse:

Mude de IDE então. Não sentirá falta desse Code::Blocks

Qual IDE é a melhor para trabalhar com C/C++? Uso essa por eu achar mais prática, já usei a Dev-C++ não gostei e usei falconC++, também não curti muito. Acho que me acostumei com o Code::Blocks

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Malcolm X disse:

Qual IDE é a melhor para trabalhar com C/C++? Uso essa por eu achar mais prática, já usei a Dev-C++ não gostei e usei falconC++, também não curti muito. Acho que me acostumei com o Code::Blocks

 

Não vou entrar em discussões intermináveis dizendo qual é a melhor. Nem tenho essa autoridade. Mas:

  • Visual Studio é um ambiente muito completo, em especial com CMake e vcpkg. Compila todo pacote importante em uma linha de comando. E a chance de você acabar em uma empresa ou escola que usa isso é, digamos, enorme.
  • Visual Studio Code é sensacional se usa Windows e Linux e Mac e precisa testar em vários sistemas sem sair de sua máquina ou usar setups complicados. E o editor é absurdamente configurável e pode emular o vi/vim para quem vem do Unix/Linux.
  • CLion é muito bom e ajuda muito a escrever e testar, como tudo que já vi da JetBrains
  • Eclipse é bem completo e se usa java vai se sentir em casa
  • NetBeans é muito legal

E sempre pode usar um editor de texto moderno como o Sublime Text ou o Atom. E não usar nenhum IDE mas apenas make/CMake. É o normal desde os '70 e se usa assim em praticamente todo médio/grande sistema hoje: Algo como Make, algo como git, algo como gcc, algo como gdb. O mais provável? Visual Studio com MSVC, Visual Studio Code ou CLion com gcc ou clang, CMake e o debugger :) e as fontes todas no git/ gitHub. Se vem de um ambiente Oracle/Linux/java NetBEans ou Eclipse vai estar por certo em sua agenda.

 

Note que raramente a gente pode escolher essas coisas :( vem com o patrão ou o contrato

 

 

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Então isso deve ser instalado por algum ambiente de desenvolvimento e tem por acaso nas máquinas que eu uso. Vou ver onde isso fica no sistema depois

 

Por outro lado, isso é coisa nativa no Unix, ou seja Linux, Mac, Android...

 

image.png.fb8abbe0343b9d466c70383c60829ac0.pngNa máquina que estou usando agora o primeiro locale é "C", o padrão. O segundo é C com Unicode via utf-8. E POSIX vem depois

 

 

 

 

No Ubuntu Linux tem menos :) 

 

toninho@DSK-2009:~$ locale -a
C
C.UTF-8
POSIX
en_US.utf8
toninho@DSK-2009:~$

 

Aqui na mesa tem no Centos7 e até no Centos8 bem enxuto do PABX Asterisk, Mas na máquina de referência Windows 10 aqui sem nada instalado não tem isso também 🤔. Um laptop aqui ao lado com Windows 10, Visual Studio e clang não tem... 

 

Não sei quem instala isso. gcc?

 

 

Link para o comentário
Compartilhar em outros sites

Eu achei um locale.exe no diretório usr\bin do GIT (C:\Program Files\Git\usr\bin) e funcionou. (Usei o programa Everything pra procurar locale.exe no computador todo.)

A lista de locales disponíveis aqui é grande.

 

Imagino que no seu sistema esse caminho está configurado na variável de ambiente PATH?

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...