Редактировать строку в текстовом файле с++

void changeInfo() {
    fopen_s(&file, "data.txt", "r+");
    char stf[255] = { 0 }, rtf[255] = { 0 }, str[255] = { 0 };
    printf("Naiti po klyuchevumu slovu");
    cin >> stf;
    printf("Vvedite tekst dlya zameny info po klyuchevomu slovu");
    cin >> rtf;
    while (fgets(str, 255, file) != NULL)
    {
        char* tmp_ptr = strstr(str, stf);
        while (tmp_ptr != NULL)
        {
            char tmp_str[255];
            strcpy(tmp_str, tmp_ptr + strlen(stf));
            strcpy(str + strlen(str) - strlen(tmp_ptr), rtf);
            strcat(str, tmp_str);
            tmp_ptr = strstr(str, stf);
        }
        printf("%s", str);        
    }
    fprintf_s(file, "% s", str);
    fclose(file);
    getchar();
}

Моя проблема в том, что он так же сохраняет старую информацию и плюссоздаёт новую строку в текстовом файле. Как сохранить в старой НОВЫЕ изменения?


Ответы (0 шт):