Ir ao conteúdo
  • Cadastre-se

Problema com acentuação em strings


Near_

Posts recomendados

Objetivo: Ler um nome qualquer escrito na tela e depois usa-lo para imprimir uma mensagem.
 
Como eu fiz:

  • Criei a string _nome.
  • Usei a função cin.getline para que o nome digitado seja salvo na string _nome.
  • Usei o COUT para imprimir uma mensagem com o conteúdo da string _nome.

Resultado/Problema: Aconteceu o esperado, o nome digitado é salvo e depois impresso.Menos pelo fato de que nomes com acento como por exemplo "FLÁVIO", estão sendo salvos errado na string: "FL VIO".
 
O que eu tentei fazer:

  • Testei colocar direto o nome "FLÁVIO" no COUT, e foi impresso corretamente "FLÁVIO", então o problema não é na hora de imprimir.
  • Testei definir antes de copilar que a string _nome=="FLÁVIO", e também foi impresso corretamente, então o problema também não é com a string.
  • Testei trocar a string _nome por char _nome[50], mas deu na mesma, então mais uma vez conclui que o problema não é na string.

Não sei muito mais o que fazer, parece que o erro está na hora de ler o nome.. 

 

#include <iostream>#include <cstdlib>#include <clocale>#include <string>using namespace std;class telas {public:void tela1() {char _nome[50]; //Criei a variável que deve guardar um nome.cout <<" Criado com: Code::Blocks v13.12"<<endl;cout <<"\n Digite seu nome e pressione enter: ";cin.getline(_nome,50);//Solicitei que fosse digitado um nome na telacout <<" \n"<<endl;cout <<" Seja bem vindo(a) "<<_nome<<"!"<<endl;//E então imprimi um texto com o conteúdo da variável _nome
Link para o comentário
Compartilhar em outros sites

  • 6 meses depois...

Use o locale.h, só que notei um comportamento estranho em todo programa que eu colocava setlocale(LC_ALL,"Portuguese");

Use e veja se te ajuda.

 

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

int main ()
{
    setlocale(LC_ALL,"Portuguese");

    printf ("é á í ó ú ü ²²³£¢ ã õ ç °ªº°\n" );

  system("pause");
  return 0;
}

 

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