Ir ao conteúdo
  • Cadastre-se

Ler palavras com acento em arquivos


Gabriel_Moro

Posts recomendados

estou tentando tirar informações de um arquivo que contem nomes e idades, os nomes são brasileiros então muitos tem acentos e eu não estou conseguindo ler eles corretamente

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

void criaTxt() {
	FILE *f = fopen("registroOrganizado.txt", "w");

	fclose(f);
}

void mostraAntesOrganizado() {
	char texto[50];

	FILE *f = fopen("1.csv", "r");

	fseek(f, 0, SEEK_SET);
	while (1) {
		fgets(texto, sizeof(texto), f);
		if(feof(f))
			break;
		printf("%s", texto);
		getchar();
	}

	fclose(f);
}

int main(void) {
	setbuf(stdout, NULL);

	setlocale(LC_ALL, "Portuguese");

	//criaTxt();
	mostraAntesOrganizado();

	return EXIT_SUCCESS;
}

 

1.csv

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Olá!!!

 

Sempre começo a programação com esses códigos e a leitura sai corretamente:

 

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

main()
{
    system ("color 0E"); // cor da tela = preta, fonte = amarela
    setlocale(LC_ALL, "Portuguese"); // Leitura do idioma

}

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

O problema é a codificação do arquivo CSV que está em UTF-8-BOM, pra imprimir esses caracteres no Windows vai precisar mudar a Code Page do terminal (prompt de comandos) para UTF-8.

 

Pra fazer isso inclua a biblioteca windows.h e use a função SetConsoleOutputCP para a codepage 65001, e o deve imprimir corretamente os nomes.

Use

#include <windows.h>

e

SetConsoleOutputCP(65001);

Também pode usar SetConsoleCP() pra setar a Codepage de entrada de dados via prompt (para quando usar scanf() por exemplo).

 

A tabela completa de Code Pages pode ser vista aqui: https://msdn.microsoft.com/library/windows/desktop/dd317756

  • Curtir 1
  • Obrigado 1
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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!