Ir ao conteúdo
  • Cadastre-se

Problema com output de caracteres especiais


thalesds

Posts recomendados

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.


Link para o comentário
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();}
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...