Пятница, 20.06.2025, 06:03

Приветствую Вас Гость | RSS
Мой сайт
ГлавнаяРегистрацияВход
Меню сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная » 2016 » Июль » 11 » Freopen €� : C++ функция Freopen
08:47
Freopen €� : C++ функция Freopen

freopen – замена файла связанного с потоком данных.

Синтаксис:

#include
FILE *freopen (const char *filename, const char *mode, FILE *stream);

Аргументы:

filename – указатель на строку содержащую имя (включая путь) открываемого файла.

mode – указатель на строку содержащую режим доступа к открываемому файлу.

stream – указатель на управляющую таблицу открытого потока данных для которого необходимо заменить файл.

Возвращаемое значение:

Указатель на управляющую таблицу открытого потока данных (аргумент stream), если открытие файла произошло успешно.

NULL – если при открытии файла произошла ошибка. В переменную errno будет записан код ошибки.

Описание:

В первую очередь функция freopen закрывает файл, связанный с потоком stream, игнорируя ошибки, если они возникли при закрытии файла. Затем открывается файл, указанный аргументом filename с режимом доступа, указанным в аргументе mode. Открытый файл связывается с потоком данных указанным аргументом stream.

В основном функция freopen используется для замены файла связанного со стандартными потоками ввода-вывода (stdin, stdout или stderr) или с пользовательскими потоками данных.

Режимы доступа к файлу такие же как для функции fopen и указаны ниже:

r или rb – открытие файла для чтения. Если файла не существует, работа программы завершиться с ошибкой.

w или wb – создать файл для записи, если файла уже существует, он будет открыт, он все имеющиеся в файле данные будут уничтожены.

a или ab – открыть файл для записи в конец файла, если файла не существует, он будет создан.

r+ или rb+ или r+b – открыть файл для чтения и записи. Если файла не существует, работа программы завершиться с ошибкой.

w+ или wb+ или w+b – создать файл для чтения и записи, если файл уже существует, он будет открыт, но все имеющиеся в файле данные будут уничтожены.

a+ или ab+ или a+b - открыть файл для записи в конец файла, если файла не существует, он будет создан.

Пример:

В примере производится перенаправление данных выводимых в стандартный поток вывода (stdout) с консоли в файл test.txt.

#include //Для printf, freopen, fclose int main (void) { // Переменная, в которую будет сохранен указатель // на управляющую таблицу стандартного потока данных вывода FILE *mf; //Вывод строки в стандартный поток вывода (stdout). Строка //должна вывестись на консоль printf (“Проверка записи. Тест 1.”); // Замена файла связанного со стандартным потоком вывода stdout. // Теперь все данные потока stdout будут записываться в файл, а не // выводиться на экран. mf=freopen (“test.txt”,”w”,stdout); //Вывод строки в стандартный поток вывода (stdout). Строка //должна записаться в файл test.txt printf (“Проверка записи. Тест 2.”); // Закрытие стандартного потока вывода stdout fclose (mf); return 0; }

Результат:

Вывод на консоль:

Проверка записи. Тест 1.



Содержимое файла:



Проверка записи. Тест 2.



Смотри так же:

Просмотров: 275 | Добавил: supoinclus | Рейтинг: 0.0/0
Всего комментариев: 0
Вход на сайт

Поиск

Календарь
«  Июль 2016  »
Пн Вт Ср Чт Пт Сб Вс
    123
45678910
11121314151617
18192021222324
25262728293031

Архив записей

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz


  • Copyright MyCorp © 2025Бесплатный хостинг uCoz