Ir ao conteúdo
  • Cadastre-se

hades813

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. Bom dia estou com um problema em um programa de modificar textos e não consigo achar o erro pois o programa esta travando na função "modificar notas" perto da linha 80 mais ou menos. codigo: #include<stdio.h> #include<stdlib.h> #include<ctype.h> #include<string.h> //strtok #define MAX 80 char opcaoMenu(){ char op; system("cls"); printf("(L)istar notas\n"); printf("(M)odificar notas\n"); printf("(F)im\n"); scanf(" %c",&op); return (toupper(op)); //retorna o caracter sempre em maiúsculo } void listarNotas(){ int num, notas=0; float n1,n2,media=0; char *nome,*codigo; char buf[MAX]; FILE *arq; arq = fopen("lembrete.dat","r"); if(arq == NULL){ printf("Erro ao abrir o arquivo\n"); return; } fgets(buf,MAX,arq);//lê uma linha inteira de um arquivo e armazena em buf while(!feof(arq)){ //enquanto não for o fim do arquivo nome = strtok(buf,";"); codigo = strtok(NULL,";"); //2º valor até "," printf("%s;%s\n",nome,codigo); fgets(buf,MAX,arq);//lê próxima linha } media /= notas; printf("%s\n",nome); fclose(arq); } void modificarNotas(){ int num, na, achei=0; float n1,n2; char *nome,*codigo,*codigoaux,*nomeaux; char buf[MAX]; FILE *lembrete,*auxlembrete; lembrete = fopen("lembrete.dat","r"); if(lembrete == NULL){ printf("Erro ao abrir o arquivo\n"); return; } auxlembrete = fopen("auxlembrete.dat","w"); printf("\nDigite o codigo do aluno: "); scanf("%s",&codigo); fgets(buf,MAX,lembrete);//lê uma linha inteira de um arquivo e armazena em buf while(!feof(lembrete)){ //enquanto não for o fim do arquivo codigoaux = strtok(buf,";"); //pega o primeiro valor antes da "," nomeaux = strtok(NULL,";"); //2º valor até "," //erro if(codigo == codigoaux){//achou o codigo achei = 1; printf("Digite o novo codigo:"); scanf("%s",&nome); } //copia os dados para o arquivo temporário fprintf(auxlembrete,"%s;%s\n",codigo,nome); fgets(buf,MAX,lembrete);//lê próxima linha } fclose(lembrete); fclose(auxlembrete); if(achei == 0) //nao encontrou printf("codigo nao existe."); else{ remove("lembrete.dat"); //apaga o arquivo original rename("auxlembrete.dat","lembrete.dat"); //renomeia o arquivo temporário que //contem os dados atualizados } } int main(){ char op; do{ op = opcaoMenu(); if(op=='L') listarNotas(); //chama funcao listar notas else if(op=='M') modificarNotas(); //chama funcao modificar notas printf("\n"); system("pause"); }while(op != 'F'); return 0; } arquivo "lembrete.dat" "codigo;titulo codigo1;titulo1 codigo2;titulo2" caso alguem saiba como resolver e possa me falar eu ficaria muito grato pela ajuda

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