Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Организация работы с файлами
Потоки для работы с файлами Общие сведения Для работы с файлами в языке C++ используются потоки трех видов: · поток ввода (класс ifstream); · поток вывода (класс ofstream); · поток ввода-вывода (класс fstream). Класс ifstream используется для выполнения чтения данных из файлов. Поток ofstream – для записи данных в файлы. Поток fstream – для чтения и записи данных в файлы. Для использования этих классов потоков необходимо в программу включить заголовочный файл < fstream >. Для выполнения любых работ с файлом необходимо: 1) создать поток одного из классов файловых потоков; 2) связать созданный поток с конкретным файлом (открыть конкретный файл для работы); 3) выполнить необходимые действия с файлом (чтение / запись данных); 4) закрыть файл. Пример работы с файлом
bool Запись_данных_в_текстовый_файл (char * FileName) { ofstream File; // Создали поток вывода для записи данных в файл File.open (FileName); // Открыли файл if (! File. is_ open ()) // Проверили удалось ли открыть файл { cout << "Открыть файл не удалось! \ n"; return 0; // Файл не открыт } for (int I = 1; I <= 10; ++ I) // Записываем 10 строк в файл File << "Строка " << I << endl; File. close (); // Закрываем файл return 1; }
bool Чтение_данных_из_текстового_файла (char * FileName) { ifstream File; // Создали поток ввода для чтения данных из файла File. open (FileName); // Открыли файл if (! File. is_ open ()) // Проверили удалось ли открыть файл { cout << “Открыть файл не удалось! \ n”; return 0; // Файл не открыт } char S[100]; while (! File. eof ()) // Читаем все строки из файла и выводим их на экран { File.getline (S, 100); cout << S << endl; } File.close (); // Закрываем файл return 1; }
Int main () { setlocale (0, ""); if (Запись _данных _в _текстовый _файл ("E:\\test.txt")) Чтение_данных_из_текстового_файла(" E:\\ test. txt"); system("pause"); return 0; }
Работа с файлами Создание потока, открытие и закрытие файла
Либо последовательность из двух инструкций:
ofstream File; - создали поток File. open (" E:\\ test. txt"); - связали поток с файлом (открыли файл)
Либо так:
ofstream File (" E:\\ test. txt"); - создали поток и открыли файл
После открытия файла необходимо обязательно проверить открылся ли файл. Если файл открыть не удалось, то переменная потока (File) принимает значение false, если файл открыт – true. Следовательно, проверку успешного открытия файла можно выполнит так:
if (! File) // Ошибка
Еще один способ – использовать функцию потока is_ open (), которая также возвращает логическое значение в зависимости от результата операции открытия файла:
if (! File. is_ open ()) // Ошибка
Файл закрывается с помощью функции потока close ():
File. close (); Подробнее об открытии файла. Каждый поток использует свой вариант функции open. Их прототипы выглядят так:
void ifstream::open (const char * FileName, ios::openmode Mode = ios::in); void ofstream::open (const char * FileName, ios::openmode Mode = ios::out | ios::trunc); void fstream::open (const char * FileName, ios::openmode Mode = ios::in | ios::out);
Первый параметр определяет имя открываемого файла (представляет собой массив символов). Второй параметр определяет режим открытия файла. Этот параметр имеет значение по умолчанию, то есть является необязательным. Возможные значения этого параметра: · ios:: app – при открытии файла на запись (поток ofstream) обеспечивает добавление всех выводимых в файл данных в конец файла; · ios:: ate – обеспечивает начало поиска данных в файле начиная с конца файла; · ios:: in – файл открывается для чтения из него данных; · ios:: out – файл открывается для записи данных в файл; · ios:: binary – открытие файла в двоичном режиме (по умолчанию все файлы открываются в текстовом режиме); · ios:: trunc – содержимое открываемого файла уничтожается (его длина становится равной 0). Эти флаги можно комбинировать с помощью побитовой операции ИЛИ (|). Если файл открывается без использования функции open, эти флаги тоже можно использовать: fstream File (" E:\\ test. txt", ios:: out | ios:: app); - файл открывается на вывод с добавлением записываемых данных в конец файла.
|
|||||
Последнее изменение этой страницы: 2021-09-26; просмотров: 41; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.239.123 (0.011 с.) |