У меня есть следующий код:
#include <stdio.h>
#include <stdlib.h>
int main() {
long num = 0;
FILE *fptr;
if ((fptr = fopen("test_num.txt","r+")) == NULL){
printf("Error! opening file");
return -1;
}
fscanf(fptr,"%ld", &num);
// Increment counter by 1
num += 1;
printf("%ld\n", num);
fprintf(fptr, "%ld", num);
fclose(fptr);
return -1;
}
С помощью вышеупомянутого кода я пытаюсь прочитать содержимое файла, в котором всегда хранится длинное значение и ничего больше, увеличить значение на 1, а затем перезаписать значение lond файла с новым увеличенным значением. Тем не менее, я пытаюсь сделать это без закрытия и файла между чтением / записью. Например, рабочий процесс / алгоритм должен быть следующим:
Step 1: Open the file
Step 2: Read the long value from the file
Step 3: Increment the long value by 1
Step 4: Overwrite the long value of the file by new incremented value
Step 5: Close the file
Однако, если я использую вышеупомянутый код, тогда выходное значение добавляет увеличенное значение в конец файла вместо перезаписи. Я попытался открыть файл с помощью «w +» и «w», но, конечно, они работают только для записи, но не для чтения файла, как указано выше. Может кто-нибудь знает, что я могу сделать для достижения цели?