Я новичок в C и пытаюсь читать и записывать структуры в файл .dat. Когда я добавляю данные, я вижу символы в файле .dat. Однако я не могу прочитать данные, и мой код ничего не выводит, когда он должен выводить «val» для каждого вхождения структуры.
Я просмотрел множество источников, но не могу найти, как мой код отличается от них.
https://www.geeksforgeeks.org/readwrite-structure-file-c/
Этот веб-сайт был использован для первоначального понимания, как это сделать.
Чтение / запись в двоичные файлы в C
Я использовал это, чтобы увидеть, как можно исправить мой код, но решение не помогло.
Я попытался изменить оператор в цикле while.
struct person
{
int id;
char lastName[15];
char firstName[15];
char age[4];
};
int main(void) {
//create new file
FILE *fp = fopen("file.dat", "wb+");
struct person a = {10, "Smith", "John", 25};
fwrite(&a, sizeof(a), 1, fp);
struct person b = {2, "Ali", "Jon", 12};
fwrite(&b, sizeof(b), 1, fp);
struct person c = {19, "Walter", "Martha", 82};
fwrite(&c, sizeof(c), 1, fp);
struct person p;
while(fread(&p, sizeof(p), 1, fp))
printf("val");
}
В настоящее время должно быть напечатано 3 "Vals", поскольку в файл данных добавлено три человека. Однако ничего не печатается.
Я ценю помощь.