«Flu sh между последовательным чтением и записью» даже с fflush - PullRequest
0 голосов
/ 02 апреля 2020
contattoT ele, contatto;
int pos1 = -1 * ((int)sizeof(contattoT)), pos2 = -2 * ((int)sizeof(contattoT));

fflush(stdin);
printf("Matricola   ");
cin >> ele.matricola;
fflush(stdin);
printf("\n");
printf("Nome        ");
cin >> ele.nome;
printf("\n");
printf("Cognome     ");
cin >> ele.cognome;
printf("\n");
printf("Anni        ");
cin >> ele.anni;
printf("\n");

contatti=fopen(PATH,"rb+");
fseek(contatti,0,SEEK_END);
fwrite(&ele, sizeof(contattoT), 1, contatti);
fseek(contatti, pos2, SEEK_CUR);
while((fread(&contatto,sizeof(contattoT),1,contatti))&&(strcmp(contatto.matricola, ele.matricola) > 0))
    {
        fflush(contatti);
        system("pause"); //HERE
        fwrite(&contatto, sizeof(contattoT), 1, contatti);
        fseek(contatti, pos2, SEEK_CUR);
        fwrite(&ele, sizeof(contattoT), 1, contatti);
        fseek(contatti, pos2, SEEK_CUR);
    }
fclose(contatti);

Привет! Я пытаюсь применить алгоритм сортировки вставки к двоичному файлу, но после системной паузы выдает ошибку: «Flu sh между последовательным чтением и записью: stream.has_any_of (_IOREAD)».

Я совершенно уверен, что алгоритм правильный, поэтому я попытался поставить этот fflu sh, но ничего не изменилось ... Вы можете мне помочь?

IDE - это VSCommunity 2019.

...