Мне интересно, смогу ли я использовать fseek()
при редактировании значения переменной в файле.Все учебники, которые я видел в Интернете, были посвящены редактированию текста, но как я могу использовать fseek()
для редактирования значения.Вот как работает моя программа: Пользователь вводит имя, пол и возраст.Пользователь может ввести столько данных, сколько он хочет.Теперь пользователь ищет имя;и пол, и возраст этого имени будет отображаться.Затем пользователю предлагается изменить возраст.После ввода новой эпохи файл будет отредактирован с записью новой эпохи.
Вот мой код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct data
{
char name[30];
char gender[10];
int age;
};
int main(void)
{
struct data client;
FILE* fp;
char ch = 0;
do
{
printf("Enter Name: ");
scanf("%s", client.name);
printf("Enter Gender: ");
scanf("%s", client.gender);
printf("Enter Age: ");
scanf("%d", &client.age);
fp = fopen("data.txt", "ab");
fwrite(&client, sizeof(client), 1, fp);
fclose(fp);
printf("continue? \n");
scanf(" %c", &ch);
} while (ch != 'n'); // continuously appends file till letter n is read;
char input[30]; // user input
printf("name?\n");
scanf("%s", input);
struct data Read;
fp = fopen("data.txt", "rb");
int newAge;
while (fread(&client, sizeof(client), 1, fp))
{
if (strcmp(client.name, input) == 0) // compare variable with user input
{
printf("%s", client.name);
printf(" %s", client.gender);
printf(" %d y/o", client.age);
printf("\n");
printf("enter new age");
scanf("%d", &newAge);
//fseek function
}
}
return 0;
}
Надеюсь, кто-нибудь может помочь.