Как отредактировать число, которое находится в указанном c месте в данном файле в C? - PullRequest
1 голос
/ 03 февраля 2020

Я сохранил список номеров как

1
2
3
4
5
6
7
8
9
10

в файле INPUT.txt. и я хочу отредактировать указанное c местоположение (которое здесь является 5-м элементом) и хочу заменить его на число 35. Как я могу это сделать? (Я не хочу создавать другой новый файл, не хочу перезаписывать все это, просто редактирую только этот файл !!).

#include <stdio.h> 

void main() { 
    FILE *fp; 
    char ch; 
    int a, i, b = 35;
    fp = fopen("INPUT.txt", "r+");

    for (i = 0; i < 10; i++) {
        fscanf(fp, "%d", &a);
        printf("\t%d\n", a);
        if (i == 5) {
            fprintf(fp, "b");
        }
    }
    fclose(fp);  
} 

1 Ответ

4 голосов
/ 03 февраля 2020

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

Кроме того, вы можете прочитать весь файл в памяти, выполнить модификацию и переписать новое содержимое в файл.

...