Как редактировать данные файла File Handling C - PullRequest
0 голосов
/ 05 февраля 2019

Мне интересно, смогу ли я использовать 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;
}

Надеюсь, кто-нибудь может помочь.

...