Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas com caracteres especiais


thales_d_s

Pergunta

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

5 respostass a esta questão

Posts Recomendados

  • 0

Prove setlocale(LC_ALL, "Portuguese"); com a 'P' maiúscula. Não se esqueça de incluir locale.h

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main(void)
{
  setlocale(LC_ALL, "Portuguese");
  printf("Utilizando caracteres e acentuação da língua portuguesa!\n\n");
 
  system("pause");
  return 0;
}

IMPORTANTE!
Ademas vaia nas opções da janelinha do console e verifique sé o tipo da fonte que esta usando é trye type. Uma boa fonte é a Console do windows 7, si estiver em XP seguramente esse é o problema, em Windows não esta a fonte "Console", porem sim tem outra que se chama "Lucida console" o algo assim.  quando executar o código click com o botão direito sobre a parte superior da janela e escolha propriedades, elija a pestana "fontes", eu estou em um computador em español, pode ser outros nomes.

Editado por vangodp
Link para o comentário
Compartilhar em outros sites

  • 0

Segui as orientações e continuo apresentando o mesmo problema. Segue o código caso ajude:

#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();

}

 

Grato

Link para o comentário
Compartilhar em outros sites

  • 0

Infelizmente não vou poder ajudar muito. Por casualidade, qual é o sistema operativo que você esta usando, e si puder dizer IDE, compilador(de onde baixou), etc etc.

Eu estou usando windows xp, meu pc quebrou e tenho um de reposição, até que o meu não fique bem não posso provar a ver em outro lado, ao parecer o mesmo problema eu tenho no windows xp, mais ainda pior, não me funciona nada do locale. Si tiver noticias posto aqui.

 

Uma coisa que você pode fazer é tentar salvar o arquivo como utf-8, abre ele com o bloco de notas e escolha "salvar como" e escolha utf-8 para o tipo de codificação, ou tentar baixar outro compilador e provar, e pedir para outros provar compilar seu código. Já não tenho mais idéias, sinto muito.

=(

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...