Ir ao conteúdo
  • Cadastre-se

Ajuda Exercício C - Linguagem C: arquivo .txt (Completar Programa)


Posts recomendados

Eai pessoal, beleza? 
Sou novo aqui no Fórum, estou precisando de uma ajuda em um programa que preciso entregar que vale nota.
O atividade é em C, ele precisa ter:
 
Criar um menu:
1 - Criar / Zerar Arquivo
2 - Adicionar Registros
3 - Pesquisar Registros ( Pelo numero do prontuario, exibir o registro)
4 - Copiar Registro ( Permite copia de registro em outro arquivo)
- Se encontra-lo exibir os campos no vídeo e perguntar se deseja copia-lo em outro arquivo
- Exibir mensagem de sucesso
5 - Sair
 
 
Já fiz uma boa parte do programa porém não consigo resolver alguns problemas e o restante.
Tentei buscar em outros tópicos mas não encontrei nada. 
Caso alguém consiga resolver, muito obrigado!
 
Segue o código:
 
#include <stdio.h>
 
#include <stdlib.h>
 
 struct aluno
{
      char nome [20];
      int pront;
      char sex [10];
};
 
    FILE *PTRARQ;
 
    int prontuario;
 
 
int criar_arquivo(void)
{
    char nome [20];
    int pront;
    char sex;
 
    FILE *PTRARQ; // definição do ponteiro para o arquivo
    PTRARQ = fopen("LISTADECHAMADA.TXT","w");
 
    printf ("...Criando\n");
 
    fclose(PTRARQ);
    return 0;
}
int gravar_arquivo(void)
{
 
    struct aluno a;
 
    printf ("---Ficha de Preenchimento---\n");
 
    printf ("Digite o Nome:");
 
    fflush(stdin);
 
    fgets(a.nome, 20, stdin);
 
    printf ("Digite o Prontuario:");
 
    scanf("%i", &a.pront);
 
    printf ("Digite o Sexo:");
 
    fflush(stdin);
 
    fgets(a.sex, 10, stdin);
 
    FILE *PTRARQ;
    char PALAVRA[20];
    PTRARQ = fopen("LISTADECHAMADA.TXT","a");
 
    fprintf(PTRARQ, "%s", a.nome);
 
    fprintf(PTRARQ, "%i", a.pront);
 
    fprintf(PTRARQ, "%s", a.sex);
 
    fclose(PTRARQ);
    return 0;
 
 
}
int le_arquivo(void)
{
 
    FILE *PTRARQ; // definição do ponteiro para o arquivo
 
    char nome_l[20];
    int pront_l;
    char sex_l[10];
 
 
    PTRARQ = fopen("LISTADECHAMADA.TXT","r");
 
 
    fscanf(PTRARQ, "%s", nome_l);
    printf("Nome: %s\n", nome_l);
 
    fscanf(PTRARQ, "%i", pront_l);
    printf("Prontuario: %i\n", pront_l);
 
    fscanf(PTRARQ, "%s", sex_l);
    printf("Sexo: %s\n", sex_l);
 
 
    fclose(PTRARQ);
    system("pause");
    return 0;
}
 
int pesquisar_arquivo(int prontuario)
 
 
{
    int achou=0;
    struct aluno a;
 
 
 
    PTRARQ = fopen("LISTADECHAMADA.TXT","r");
    while(!feof(PTRARQ)&& achou == 0)
    {
        fscanf(PTRARQ, "%d", &a.pront);
        if(prontuario==a.pront)
        {
            achou=1;
            fflush(stdin);
            fscanf(PTRARQ,"%s",&a.nome);
            printf("%s",a.nome);
 
        }
    }
 
    fclose(PTRARQ);
    system("pause");
    return 0;
}
 
 
int main()
{
    char CONTINUA='s';
    int X;
    do
    {
        printf("\n\nEscolha uma opcao\n");
        printf("[1] - Cria/zera arquivo\n");
        printf("[2] - Adiciona informação no arquivo\n");
        printf("[3] - Le e exibe informações\n");
        printf("[4] - Pesquisar informações\n");
        printf("[9] - Sair do programa\n");
        scanf("%d" , &X);
 
        switch(X)
        {
 
         case 1:
         criar_arquivo();
         break;
         case 2:
         gravar_arquivo();
         break;
         case 3:
        printf("ok");
         le_arquivo();
         break;
         case 4:
         printf("Digite o prontuario:");
         scanf("%d",&prontuario);
         pesquisar_arquivo(prontuario);
         case 9:
         break;
 
        }
    }while (X!=9);
    return 0;
}

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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