Acentuação e Outros. [RESOLVIDO]

1. Acentuação e Outros. [RESOLVIDO]

Lucas
~lujjc4

(usa Ubuntu)

Enviado em 05/01/2012 - 11:02h

Hiho forumeiros (;
Como utilizar acentuação em C?
tentei assim e não funcionou:

#include <stdio.h>
#include <locale.h>
int main()
{
*setlocale(LC_ALL,"");
printf("Esse é o jeito");

system("PAUSE>>NULL");

return 0;
}


Outra duvida seria com a parte gráfica....
por exemplo eu posso fazer uma calculadora com códigos e rodar ela na velha telinha preta, mais como tornar ela um "aplicativo" e rodar com interface gráfica?

fico no aguardo, tnx.


  


2. Re: Acentuação e Outros. [RESOLVIDO]

Jose Renan
JoseRenan

(usa Ubuntu)

Enviado em 05/01/2012 - 11:18h

Rapaz eu não entendo muito. Não sei porque mas compilando e executando programas em C++ no GNU/Linux os acentos aparecem normalmente, coisa que não acontece se eu faço o mesmo no, por exemplo, Dev C++. Deve ser a codificação.

Quanto ao aplicativo gráfico talvez esse tópico possa ajudar: http://www.vivaolinux.com.br/topico/C-C++/GUI-em-C++


3. Re: Acentuação e Outros. [RESOLVIDO]

Johnny Navarro
Johnny_Navarro

(usa Slackware)

Enviado em 03/03/2012 - 01:46h

Tenho o mesmo problema, eu tow usando o Netbeans com Slackware 13.37, já várias dicas, mas nada resolveu usei a dica de exportar variaveis como LANG=pt_BR e outras tantas, no arquivo /etc/profile, e também no /etc/profile.d/lang.sh e no lang.csh também. A codficação do Netbeans esta em ISO-8859-1, não sei mais oque faço. Todos os acentos que uso, ficam malucos. Também tenho bibliotecas locale e locale.h nos cabechalhos e já tentei com a função setlocale(LANG_ALL, "") nada dá certo tow com a calma que só o desespero proporciona.


4. Re: Acentuação e Outros. [RESOLVIDO]

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 03/03/2012 - 08:57h

Comigo deu certo assim:


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

int main(){
setlocale(LC_ALL,"");
printf("Esse é o jeito");
getchar();
return 0;


Você pode usar o códig ascII também:


printf("Esse %c o jeito",130);



5. Re: Acentuação e Outros. [RESOLVIDO]

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 03/03/2012 - 09:05h

Mas pelo menos aqui no meu Linux Xubuntu nem precisou nem um nem outro. Só coloquei o acento e retornou tranquilo.


#include <stdio.h>

int main(){
printf("Esse é o jeito");
getchar();
return 0;
}


Esse é o jeito


6. Re: Acentuação e Outros. [RESOLVIDO]

euteste da silva
foxbit3r

(usa Solaris)

Enviado em 03/03/2012 - 10:14h

Vc fez certinho, só que a variável LANG do SO precisa estar setada pt_BR ou ISO-8859-1.
Verifique o valor antes no seu SO com o comando echo $LANG, locales


7. Re: Acentuação e Outros. [RESOLVIDO]

Johnny Navarro
Johnny_Navarro

(usa Slackware)

Enviado em 03/03/2012 - 13:52h

Eu inclui estas linhas em todos os meus aqruivos de configuração de ambiente relacionados com o objetivo, segue as linhas abaixo:

export LANG=pt_BR
export LC_ALL=pt_BR
export LC_CTYPE=ISO-8859-1
export LESSCHARSET=latin1

Estas linhas estão insclusas nos seguintes arquivos:

~bashrc
~bash_profile
/etc/profile
/etc/profile.d/lang.sh
/etc/profile.d/lang.csh
~kderc
No shell as variaveis estão perfeitas até o VIM esta me retornando mensagens em Português(Nunca tinha visto isso), mas o codigo de C++ compilado não mostra acentos de jeito nenhum... ¬¬. Antes de qualquer coisa eu uso Netbeans a codificação esta ISO-8859-1 e quando compilo no shell acontece o mesmo com os acentos, o diabo preciso e levou ¬¬


8. Re: Acentuação e Outros. [RESOLVIDO]

Johnny Navarro
Johnny_Navarro

(usa Slackware)

Enviado em 03/03/2012 - 15:15h

Bem pessoal revisando os arquivos e todo o "samba" que usei na tentativa de resolver os problemas com "C++ + Netbeans + acentuação" encontrei um numero maior de variaveis de ambiente pra exportar abaixo seguem todas:

export LANG="pt_BR"
export LC_ALL="pt_BR"
export LC_TYPE="ISO-8859-1"
export LESSCHARSET="latin1" //Acho que esta estava faltando
export LC_COLLATE="pt_BR"
export LC_MESSAGES="pt_BR"
export LC_NUMERIC="pt_BR //E esta aqui também

Pelo menos não estavam todas em todos os arquivos que citei no ultimo post. reiniciei o NetBeans e funcionou.
Obrigado a todos pela ajuda.


9. Setlocale

Helmer
HASM

(usa Ubuntu)

Enviado em 17/06/2013 - 22:03h

coloquei assim:

setlocale(LC_ALL, "Brasil");


10. Re: Acentuação e Outros. [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 18/06/2013 - 05:18h

Existem duas opções: ou se amarra todo o sistema e todos os aplicativos para usarem a mesma representação de locale (que tem quatro aspectos: idioma, região, conjunto de caracteres e codificação desse conjunto), ou você programa para o mundo real, em que máquinas e pessoas diferentes -- ou mesmo a mesma pessoa ou a mesma máquina em variados momentos e situações -- diferentes usam locales diferentes.

Para tornar um programa mais "localizável", geralmente você programa usando strings escritos numa locale "neutra" (Inglês americano, mas com um conjunto de caracteres reduzido), e usa bibliotecas que realizem as necessárias conversões de idiomas e/ou representações de caracteres (como libintl, iconv, ou outras de mais alto nível, como a QObject::tr() da Qt).

Seu problema é que seu IDE estava gravando os arquivos num conjunto de caracteres específico, e o compilador estava compilando esses caracteres exatamente como eles vinham gravados no arquivo original. Se o seu terminal, em tempo de execução, não estiver configurado com o mesmo conjunto, é bem provável que não sejam exibidos corretamente, já que o programa também não chama as devidas funções de conversão. Não é printf() que deve fazê-la, mas funções específicas para isso.

Leia sobre iconv(3) e gettext(3).






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts