Я учусь работать с файлами в C. До сих пор я мог писать (создавать) текстовые файлы, используя функцию fopen + fprintf, но я не понимал, как работает параметр чтения и записи.
Всякий раз, когдаЯ использую +, w + или r +, моя программа только пишет информацию, но не читает ее.Я должен закрыть файл и снова открыть его в режиме только для чтения.Следующий код объясняет лучше:
Этот код не работает для меня:
#include<stdio.h>
#include<stdlib.h>
int main(void){
FILE * myfile = nullptr;
myfile = fopen("./program.txt", "a+"); // I also tried w+ and r+
int num1 = 4;
int num2 = 0;
fprintf(myfile, "%d", num1);
fscanf(myfile, "%d", &num2); // the atribution does not occur
// num2 keeps previous value
printf("%d", num2);
fclose(myfile);
return (0);}
Это прекрасно работает:
#include<stdio.h>
#include<stdlib.h>
int main(void){
FILE * myfile = nullptr;
myfile = fopen("./program.txt", "w");
int num1 = 4;
int num2 = 0;
fprintf(myfile, "%d", num1);
fclose(myfile); //close the file!
myfile = fopen("./program.txt", "r"); // reopen as read only!
fscanf(myfile, "%d", &num2);
printf("%d", num2);
fclose(myfile);
return (0);}
Есть лилюбой способ работать с файлом (читать и изменять его) без необходимости каждый раз закрывать его?