viciado 1 Denunciar post Postado Fevereiro 4, 2010 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
VictorCacciari 42 Denunciar post Postado Fevereiro 5, 2010 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