Ir ao conteúdo

Posts recomendados

Postado

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
Postado

@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

Postado
#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

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

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!