Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda Urgente Em Estruturas !


pringles

Pergunta

Pessoal preciso de uma ajuda urgente !!!

Preciso resolver alguns exercícios de C em que o exercício pede para que eu crie um arquivo "cadastro.dat" e coloque algumas informações de cadastro de um paciente de consultório médico neste arquivo, declarando por estruturas.

Alguém tem alguma dica de como alterar e consultar esses dados salvos?

Outra coisa: preciso salvar valores do tipo int no arquivo, e não estou conseguindo.

Eu fiz mais ou menos assim:

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
struct pacientes
{
   char nome[30];
   char endereco[30];
};
void main()
{
   FILE *fp;
   fp=fopen("cadastro.dat","w");
   struct pacientes cadastro;
   printf("Digite o nome do paciente: ");
   gets(cadastro.nome);
   fputs(cadastro.nome,fp);
   fputc('\n',fp);
   printf("Digite o endereco: ");
   gets(cadastro.endereco);
   fputs(cadastro.endereco,fp);
   getch();
   fclose(fp);
}

A estrutura deve ser usada assim mesmo ou tem algum outro jeito mais prático pra eu jogar direto no arquivo, sem precisar usar fputs() e fputc()?

Vocês tem alguma dica pra alteração e consulta de registros?

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Opa!

Você deve usar as funções fread e fwrite para ler e escrever, respectivamente, estruturas em arquivos. Como exemplo, assuma que você possui a seguinte estrutura:

...

struct pessoa {
    char nome[ 30 ];
    int  idade;
};

...
Depois instanciar o objeto FILE tal como você o fez, você deve fazer o seguinte para gravar dados da estrutura no arquivo:
...

struct pessoa p;
int i = 0;

while ( i < 3 ) {
   scanf( "%s", p.nome );
   scanf( "%d", &p.idade );

   fwrite( &p, sizeof( p ), 1, fp );

   i++;
}

...
O primeiro argumento de fwrite é um ponteiro para o objeto da estrutura que contém os dados a serem armazenados, o segundo é o tamanho da estrutura em bytes, o terceiro é o número de elementos a serem inseridos e o último é o ponteiro para o arquivo (isto é, para o seu objeto da estrutura FILE). A função fread é usada de maneira similar:
...

struct pessoa p;
int i = 0;

while ( i < 3 ) {
   fread( &p, sizeof( struct pessoa ), 1, fp );

   printf( "Nome: %s;\nIdade: %d.\n\n", p.nome, p.idade );

   i++;
}

...

Para entender mais sobre o uso desta função e outras de manipulação de arquivos de acesso aleatório, dê uma procurada no Google por exemplo, e dê uma olhada neste link.

Boa sorte!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...