Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

viciado

Salvar arquivo em txt

Recommended Posts

Faço um programa teste para armazenar dados em um arquivo txt. O programa funciona normalmente só que quando vou abrir o arquivo .txt aparece uns símbolos estranhos, como faço para salvar no modo em que posso visualizar normalmente com o notepad ou outro programa ?

 

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

FILE *fp;

typedef struct{
	char rua[30];
	char bairro[30];
	int num;
	} ENDERECO;

typedef struct{
	char nome[30];
	int idade;
	long int tel;
	ENDERECO end;
	} PESSOA;
	
void ler_dados(PESSOA* p)
{
	puts("Nome: "); gets(p->nome);
	puts("Idade: "); scanf("%d",&p->idade);
	puts("Telefone: "); scanf("%ld",&p->tel);
	puts("Rua: "); gets(p->end.rua);
	puts("Bairro: "); gets(p->end.bairro);
	puts("Numero da Casa: "); scanf("%d",&p->end.num);
}

void inserir_arquivo(PESSOA p)
{
	fseek(fp, 0, SEEK_END);
	if(fwrite(&p, sizeof(p), 1, fp)!=1)
		puts("Erro ao escrever pessoa");
}

void inserir_pessoa()
{
	PESSOA x;
	ler_dados(&x);
	inserir_arquivo(x);
}


int main()
{
	if((fp=fopen("C:\\programa\\teste.txt","r+b"))==NULL){
			printf("Erro ao abrir programa \n");
			exit(1);
														}
	inserir_pessoa();
	return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está abrindo o arquivo como 'read plust' e 'binary'.

Abra o arquivo como 'write', e escreva os dados como texto, por exemplo:

void inserir_arquivo(FILE* f, PESSOA* p)
{
    fprintf(f, "%s\n", p->rua);
    fprintf(f, "%s\n", p->bairro);
    fprintf(f, "%s\n--------", intToStr(p->num));
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.