-4
What’s wrong with this excerpt?? I need to open a file to read and store in a struct, but if I put the condition in while feof!= 0, when I run it does not work. (this is a function that is being called in main)
#include <stdio.h>
#include <stdlib.h>
#define X 64
typedef struct aprovados{
int codigo_aprovados ;
char titulo_do_aprovados[50];
char area_de_aprovados[50];
char nome_autor_aprovados[50];
char nome_orientador_aprovados[50];
char nome_coautor_aprovados[50];
char nome_coorientador_aprovados[50];
char conceito_aprovados[50];
float nota_aprovados;
} aprovados;
void fazer_avaliacao(){
int sair2;
int b, selecionar_avaliacao;
FILE *leitura_projetos;
FILE *aprovados_projetos;
aprovados *lista_aprovados;
lista_aprovados = (aprovados *) malloc ( X * sizeof(aprovados)); // alocação
if(leitura_projetos==NULL){
printf("!!! Erro de alocação!!!");
main();
}
leitura_projetos = fopen("projetos_cadastrados.txt","r");
while(feof(leitura_projetos)==0){
fscanf(leitura_projetos,"%d",&lista_aprovados[b].codigo_aprovados);
fgetc(leitura_projetos);
fgets(lista_aprovados[b].titulo_do_aprovados, 50, leitura_projetos);
fgets(lista_aprovados[b].area_de_aprovados, 50, leitura_projetos);
fgets(lista_aprovados[b].nome_autor_aprovados, 50, leitura_projetos);
fgets(lista_aprovados[b].nome_orientador_aprovados, 50, leitura_projetos);
fgets(lista_aprovados[b].nome_coautor_aprovados, 50, leitura_projetos);
fgets(lista_aprovados[b].nome_coorientador_aprovados, 50, leitura_projetos);
b++;
}
fclose(leitura_projetos);
printf("__________ AVALIAÇÃO DOS PROJETOS __________ \n\n");
for(b=0; b<X; b++){
printf("Para fazer a avaliação dos projetos você deverá atribur um conceito (aprovado ou reprovado) e uma nota. \n\n");
printf("CÓDIGO: %i \n", lista_aprovados[b].codigo_aprovados);
printf("TÍTULO: %s \n", lista_aprovados[b].titulo_do_aprovados);
printf("ÁREA DE CONHECIMENTO: %s \n", lista_aprovados[b].area_de_aprovados);
printf("AUTOR PRINCIPAL: %s \n", lista_aprovados[b].nome_autor_aprovados);
printf("ORIENTADOR: %s \n", lista_aprovados[b].nome_orientador_aprovados);
printf("CO-AUTOR: %s\n", lista_aprovados[b].nome_coautor_aprovados);
printf("COORIENTADOR: %s \n\n", lista_aprovados[b].nome_coorientador_aprovados);
printf("Atribua um conceito: \n");
printf("<1> APROVADO \t<2> REPROVADO\n>>");
scanf("%i",&selecionar_avaliacao);
switch(selecionar_avaliacao){
case 1:
printf("Atribua uma nota\n>>");
scanf("%f",&lista_aprovados[b].nota_aprovados);
strcpy(lista_aprovados[b].conceito_aprovados, "Aprovado");
aprovados_projetos = fopen("aprovados.txt","a");
fprintf(aprovados_projetos,"%i\n",lista_aprovados[b].codigo_aprovados);
fprintf(aprovados_projetos,"%s\n",lista_aprovados[b].titulo_do_aprovados);
fprintf(aprovados_projetos,"%s\n",lista_aprovados[b].area_de_aprovados);
fprintf(aprovados_projetos,"%s\n",lista_aprovados[b].nome_autor_aprovados);
fprintf(aprovados_projetos,"%s\n",lista_aprovados[b].nome_orientador_aprovados);
fprintf(aprovados_projetos,"%s\n",lista_aprovados[b].nome_coautor_aprovados);
fprintf(aprovados_projetos,"%s\n",lista_aprovados[b].nome_coorientador_aprovados);
fprintf(aprovados_projetos,"%c\n",lista_aprovados[b].conceito_aprovados);
fprintf(aprovados_projetos,"&f\n",lista_aprovados[b].nota_aprovados);
fprintf(aprovados_projetos,"/n");
fclose(aprovados_projetos);
system("cls");
break;
case 2:
printf("!!! Você reprovou esse projeto !!! \n");
break;
}
} //chave do for
free(lista_aprovados);
}
yes, tried. when I put so the function nor it works
– Evelyn