Функция fopen в режиме "w+" - C (СИ)
Формулировка задачи:
Если я правильно понимаю,файл f1 должен быть открыт и для записи и для чтения.Но в этом коде только записывает,но не читает(файл f2 остается пустым).Что не так?
Если же f1 после записи закрыть а потом вновь открыть на чтение(в режиме r),то работает код нормально:
Но хотелось бы писать более лаконично,поэтому тестирую режим w+
#include <stdio.h> #include <stdlib.h> int main() { char a[80], str[] = "dfg457sdfgkjhg8976"; FILE *f1, *f2; f1 = fopen("file1.txt","w+"); f2 = fopen("file2.txt","w"); fprintf(f1, "%s", str); while(NULL != fgets(a, 80, f1)) fprintf(f2, "%s", a); fclose(f1); fclose(f2); return 0; }
#include <stdio.h> #include <stdlib.h> int main() { char a[80], str[] = "dfg457sdfgkjhg8976"; FILE *f1, *f2; f1 = fopen("file1.txt","w+"); f2 = fopen("file2.txt","w"); fprintf(f1, "%s", str); fclose(f1); f1 = fopen("file1.txt","r"); while(NULL != fgets(a, 80, f1)) fprintf(f2, "%s", a); fclose(f1); fclose(f2); return 0; }
Решение задачи: «Функция fopen в режиме "w+"»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int main() { char a[80], str[] = "dfg457sdfgkjhg8976"; FILE *f1; fpos_t position; f1 = fopen("E:\\file1.txt","w+"); fgetpos(f1,&position); fprintf(f1, "%s", str); fsetpos(f1,&position); while(NULL != fgets(a, 80, f1)) printf("%s\n",a); fclose(f1); return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д