отредактируйте текстовый файл с помощью c - PullRequest
0 голосов
/ 27 мая 2020

У меня есть текстовый файл, и я хочу изменить параметр часа для каждого человека. у каждого человека есть отдельная строка текстового файла

5055022 Tony_Curtis Chef 125 1

606603 Jini_Carrey Chef 80 0

мой код работает, но только для первый человек в списке. кто-нибудь знает в чем причина?

void Change(char* adding, char* employ)
{
    FILE* f;
    char name[200], job[200],str[200],id[9];
    int experience, hours,extra,len=0;
    f = fopen(employ, "rt+");
    assert(f);
    //while (!feof(f))
    int i = 0;
    while(i<5)
    {
        i++;
        fscanf(f, "%s %s %s %d %d", id, name, job, &hours, &experience);
        extra = Get_addHours(adding, experience);
        len = ftell(f);
        fseek(f, -len, SEEK_CUR);
        hours = hours + extra;
        fprintf(f, "%s %s %s %d %d\n", id, name, job, hours, experience);
        printf("%d",ftell(f));
    }

    fclose(f);
}
int Get_addHours(char* adding, int experience)
{
    FILE* p;
    p= fopen(adding, "rt");
    assert(p);
    int years, hours;
    while (!feof(p))
    {
        fscanf(p, "%d %d", &years, &hours);
        if (experience ==years)
        {
            fclose(p);
            return hours;
        }
    }
    fclose(p);
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...