Can anyone understand why, when in the acceptAllers function I call main (), main () does not execute the scan? That is, when I call again, main will not let me choose any options and will close the program soon. Thanks
void main(){
int j=0;
char opcao;
FILE *pedidos;
pedidos=fopen("../Projeto/Login/Users/pedidos", "r");
char leitor[100000]; //listar o primeiro pedido de novo registo
for(int i=0; i<5; i++){
fgets(leitor,10000,pedidos);
printf("%s", leitor);
}
printf("Pretende autorizar o registo deste utilizador? (y/n):");
scanf("%c", &opcao);
switch(opcao){
case 'y':
aceitarUtilizadores();
break;
case 'n':
//rejeitarUtilizador();
break;
}
}
void aceitarUtilizadores(){
char leitor[100];
FILE*ativos, *pedidos, *temp;
pedidos=fopen("../Projeto/Login/Users/pedidos", "r");
ativos=fopen("../Projeto/Login/Users/UserData", "a");
temp=fopen("../Projeto/Login/Users/temp", "w");
for(int i=0; i<5;i++){
fgets(leitor,100,pedidos);
fputs(leitor,ativos);
}
while((fgets(leitor,100,pedidos))!=NULL){ //escreve os restantes pedidos para um ficheiro temporario
fputs(leitor,temp);
}
fclose(pedidos);
fclose(ativos);
fclose(temp);
temp=fopen("../Projeto/Login/Users/temp","r");
pedidos=fopen("../Projeto/Login/Users/pedidos","w"); //abre o ficheiro dos pedidos apagando o seu conteudo
while((fgets(leitor,100,temp))!=NULL){ //copia os pedidos que faltam ser analisados para o ficheiro de pedidos
fputs(leitor,pedidos);
}
remove("../Projeto/Login/Users/temp");
fclose(pedidos);
pedidos=fopen("../Projeto/Login/Users/pedidos", "r");
rewind(pedidos);
system("clear");
if((fgets(leitor,100,pedidos))!=NULL){
fclose(pedidos);
main();
}
fclose(pedidos);
}