fwrite(&studentg,sizeof(studentg),1,p);
while(!feof(p))
{
printf("flag");
fread(&studentg,sizeof(studentg),1,p);
printf("%s\t%s\t%s\t%s\t%s\t%s\t\n",studentg.name,studentg.add,studentg.tel,studentg.pc,studentg.qq,studentg.email);
}
Почему я помещаю только один объект в файл, но он выводит две одинаковые строки? И если я помещаю два объекта в файл, он выводит один объект правильно, но другой повторяется. Я пытаюсь показать возвращаемое значение feof (p), это покажет мне, что после fread значение feof (p) все равно 0. Может ли кто-нибудь объяснить, как это происходит?Путаница о файле I/O (C)
Вы не читали comp.lang.c FAQ, ни feof человек страницы. EOF обнаруживается только * после * операции, никогда раньше, и вы должны искать при переключении с операций записи на чтение. – Jens
Вы можете принять ответ, который вам больше всего помог. – Abhineet