Ir ao conteúdo
  • Cadastre-se

C Armazenar dados de uma struct em txt, depois ler e mostrar na tela


Posts recomendados

Preciso de uma ajuda. Como eu faço para salvar dados de uma struct em txt, ler e mostrar na tela do usuário? Gostaria de salvar nome, idade e telefone. Depois fazer uma busca os dados salvos pelo nome da pessoa. Dá pra fazer isso? Exemplos me ajuda mais a entender.


Valeu! 

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

@Igor Soares da Paixão     olá ,  os arquivos podem ser de dois yipos , txt ou binário , e para gravar e ler no arquivo  txt você usa a função fprintf , e para ler nele usa a função fscanf ,  já no arquivo binário  você usa para gravar a função fwrite , e para ler a função fread ,  creio que para gravar struct seja melhor usar o tipo binário , é mais fácil , e o melhor é usar a strucr normalmente para armazenar os dados e no final na hora de sair do programa , gravar tudo no arquivo , e depois quando for executar o programa novamente , os dados estarão salvos no arquivo , e ai você copia esses dados , lendo do arquivo e coloca na struc , e durante o programa continua armazenando os dados na struct novamente , e ao sair grava novamente ,  e será melhor você postar um código que você tenha feito sobre esse exercício , para ajudarmos ,  e alguns exemplos tem nesses links    :

esse aqui é do tipo  txt ,  /*.;

http://linguagemc.com.br/arquivos-em-c-categoria-usando-arquivos/#:~:text= Em C trabalhamos com dois tipos de,regras do programa que o gerou. More

 

e esse aqui é do tipo binário .   -= ;/

https://pt.stackoverflow.com/questions/214789/armazenamento-em-arquivo-binário

Link para o comentário
Compartilhar em outros sites

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


void main(){
setlocale(LC_ALL, "");

typedef struct{

char nome[15];
int idade;
char telefone[12];

}Cpessoa; //Cadastro Pessoa

Cpessoa pessoa[10];

int i = 0, menu;


    FILE *arquivo;
    arquivo = fopen("pessoa.txt", "ab");


    printf("1 - Cadastro\n2 - Consultar\n");
    printf("Selecione a opção desejada: ");
    scanf("%d", &menu);


    switch(menu){

case 1:

    fflush(stdin);
    printf("Digite os dados da pessoa abaixo.\n\n");
    printf("Nome: ");
    fgets(pessoa[i].nome, 15, stdin);

    printf("Idade: ");
    scanf("%d", &pessoa[i].idade);

    fflush(stdin);
    printf("Telefone: ");
    fgets(pessoa[i].telefone, 12, stdin);

    fwrite(&pessoa[i], sizeof(Cpessoa), 1, arquivo);


case 2:

 arquivo = fopen("cadastro_paciente.txt", "rb");

 while(fread(&pessoa[i], sizeof(Cpessoa), 1, arquivo)){
    printf("%s", pessoa[i].nome);
    printf("%d", pessoa[i].idade);
    printf("%s", pessoa[i].telefone);
    }
}

}

Está sendo bem difícil kkk, como eu leio os dados e mostro na tela? Não sei se está correto o jeito de gravar também.

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

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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