How can I clean the buffer?

0

I'm working with file. I have trouble clearing the buffer I already used fflush(stdin) after reading but it does not work.

void EscreverFicheiro(FILE * ptr,LISTA dados){

    ptr = fopen("listagem","wb");
    system("cls");
    printf("\n\t\tPOR FAVOR INSIRA SEUS DADOS\n\n");
    printf("\t\tNOME: ");
    fflush(stdin);
    gets(dados.nome);
    printf("\t\tRUA: ");
    fflush(stdin);
    gets(dados.rua);
    printf("\t\tCIDADE: ");
    fflush(stdin);
    gets(dados.cidade);
    printf("\t\tPROVINCIA: ");
    fflush(stdin);
    gets(dados.provincia);
    printf("\t\tCOD POSTAL: ");
    fflush(stdin);
    gets(dados.codpost);
    fflush(stdin);
    fwrite(&dados,sizeof(struct lista_type),1,ptr);

    fclose(ptr);
}
    
asked by anonymous 15.08.2016 / 10:44

1 answer

0

Alternatives to fflush :

fseek(stdin, 0, SEEK_END);

Or else:

while (getchar() != '\n');
    
15.08.2016 / 13:49