Ir ao conteúdo
  • Cadastre-se
thalesds

Problema com output de caracteres especiais

Recommended Posts

Pessoal, 


 


Estou com o seguinte problema, tenho que fazer com que meu output use caracteres especiais. Tentei usar setlocale( LC_ALL, "portuguese") mas ele só funciona para os outputs originarias do código (strings constantes), as strings variáveis que uso para os inputs continuam sem printadas com erro. Eu consegui fazer o programa printar certo os inputs com  setlocale( LC_ALL, ".852), só que ai as strings constantes não saem certas. Alguma ideia? Posso disponibilizar o código caso achem conveniente. 


 


Desde já agradeço.


Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode tentar o:

setlocale(LC_CTYPE,"");

Mais usando esse código, você terá q importa a biblioteca: #include <locale.h>

Testa aí, espero que consiga.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou disponibilizar meu código aqui, se alguém puder rodar e testar... O problema é no cout de acentos obtidos pelos inputs.

#include <iostream>#include <string>#include <sstream>#include <ctype.h>#include <conio.h>#include <locale.h> #include <cstdlib>#include <cstring>#include <fstream>#include <windows.h>using namespace std;int main (){setlocale(LC_ALL, "portuguese");string str;string proc;string vara;string comarca;string dummy;string autor[5];string reu[5];string test;int a;int r;cout << "Digite o numero do processo: ";getline (cin,proc);cout << "\nO numero do processo eh: " << proc << "\n\n Caso queira mudar o numero do processo digite Corrigir, senao aperte Enter: \n";getline (cin,str);for (;str=="Corrigir" || str == "corrigir";){	cout << "Digite novamente o numero do processo: ";	getline (cin,proc);	cout << "O numero do processo eh: " << proc << "\n Caso queira mudar o numero do processo digite Corrigir, senao aperte Enter: \n";	getline (cin,str);} system("cls");cout << "Digite a comarca de origem: ";getline (cin,comarca);cout << "\nA comarca de origem eh: " << comarca << "\n\n Caso queira mudar a comarca digite Corrigir, senao aperte Enter: \n";getline (cin,str);for (;str=="Corrigir" || str == "corrigir";){	cout << "Digite novamente a comarca de origem: ";	getline (cin,comarca);	cout << "\nA comarca de origem eh: " << comarca << "\n Caso queira mudar a comarca digite Corrigir, senao aperte Enter: \n";	getline (cin,str);} system("cls");cout << "Digite a vara de origem: ";getline (cin,vara);cout << "\nA vara de origem eh: " << vara << "\n\n Caso queira mudar a vara digite Corrigir, senao aperte Enter: \n";getline (cin,str);for (;str=="Corrigir" || str == "corrigir";){	cout << "Digite novamente a vara de origem: ";	getline (cin,vara);	cout << "\nA vara de origem eh: " << vara << "\n Caso queira mudar a vara digite Corrigir, senao aperte Enter: \n";	getline (cin,str);} system("cls");cout << "Qual a quantidade de autores? ";getline(cin,test);for(int b=0; b<test.length();b++){if(isalpha(test[b])){	cout << "Voce nao digitou um numero valido.\n";	cout << "Qual a quantidade de autores? ";	getline(cin,test);}}stringstream(test) >> a;system("cls"); for(int b=0; b<a && b<5 ; b++){	cout << "\nDigite o nome do autor " << b+1 << ": ";	getline(cin,autor[b]);}for(int b=0; b<a && b<5; b++){	cout << "\n O nome do autor " << b+1 << " eh: " << autor[b];}cout << "\n\nCaso queira mudar o nome do(s) autor(es) digite \"Corrigir\", senao aperte Enter: \n";getline (cin,str);for (;str=="Corrigir" || str == "corrigir";){system("cls"); 		for(int b=0; b<a && b<5 ; b++){	cout << "\nDigite o nome do autor " << b+1 << ": ";	getline(cin,autor[b]);}for(int b=0; b<a && b<5 ; b++){	cout << "\n O nome do autor " << b+1 << " eh: " << autor[b];}cout << "\n\nCaso queira mudar o nome do(s) autor(es) digite \"Corrigir\", senao aperte Enter: \n";getline (cin,str);}system("cls"); cout << "Qual a quantidade de reus? ";getline(cin,test);for(int b=0; b<test.length();b++){if(isalpha(test[b])){	cout << "Voce nao digitou um numero valido.\n";	cout << "Qual a quantidade de reus? ";	getline(cin,test);}}stringstream(test) >> r;system("cls"); for(int b=0; b<r && b<5; b++){	cout << "\nDigite o nome do reu " << b+1 << ": ";	getline(cin,reu[b]);	}for(int b=0; b<r && b<5; b++){	cout << "\n O nome do reu " << b+1 << " eh: " << reu[b];}cout << "\n\nCaso queira mudar o nome do(s) reu(s) digite \"Corrigir\", senao aperte Enter: \n";getline (cin,str);for (;str=="Corrigir" || str == "corrigir";){system("cls"); 		for(int b=0; b<r && b<5; b++){	cout << "\nDigite o nome do reu " << b+1 << ": ";	getline(cin,reu[b]);}for(int b=0; b<r && b<5; b++){	cout << "\n O nome do reu " << b+1 << " eh: " << reu[b];}cout << "\n\nCaso queira mudar o nome do(s) reu(s) digite \"Corrigir\", senao aperte Enter: \n";getline (cin,str);}system("cls"); cout << "Xª CÂMARA CÍVEL \nAPELAÇÃO CÍVEL E REEXAME NECESSÁRIO Nº " << proc << "," << " DA COMARCA DE " << comarca << " - " << vara << " VARA DA FAZENDA PÚBLICA.";for(int b=0; b<a && b<5; b++){	cout << "\nApelante: " << autor[b];}for(int b=0; b<r && b<5; b++){	cout << "\nApelado: " << reu[b];}cout << "\nRELATORA SUBST.: JUÍZA SUBST. 2º G. FULANA";ofstream cab;cab.open("cabeçalho.doc");cab << "Xª CÂMARA CÍVEL \nAPELAÇÃO CÍVEL E REEXAME NECESSÁRIO Nº " << proc << "," << " DA COMARCA DE " << comarca << " - " << vara << " VARA DA FAZENDA PÚBLICA.";for(int b=0; b<a && b<5; b++){	cab << "\nAPELANTE: " << autor[b];}for(int b=0; b<r && b<5; b++){	cab << "\nAPELADO: " << reu[b];}cab << "\nRELATORA SUBST.: JUÍZA SUBST. 2º G. FULANA";cab.close(); getchar();}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×