Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Основные алгоритмы работы с файлами. Порядок работы с текстовыми и двоичными файлами аналогичен.Содержание книги
Поиск на нашем сайте
Порядок работы с текстовыми и двоичными файлами аналогичен. Для записи данных в файл нужно выполнить: 1. Описать файловую переменную типа FILE *. 2. Открыть файл для записи с помощью функции fopen. 3. Записать данные в файл с помощью функции fprintf или fwrite. 4. Закрыть файл с помощью функции fclose. Для чтения данных из файла нужно выполнить: 1. Описать файловую переменную типа FILE *. 2. Открыть файл для чтения с помощью функции fopen. 3. Считать данные из файла с помощью функции fscanf или fread. 4. Закрыть файл с помощью функции fclose. Пример 6. Написать программу, реализующую подсчет количества символов в заданном тексте и файловый ввод-вывод данных. Работа программы должна включать ввод пользователем с клавиатуры имен входного и выходного файлов. Результат работы программы сохраняется в выходном файле, а также выводится на экран. #include "stdafx.h"#include <iostream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){ int sum=0; char c,file1[10],file2[10]; FILE *t,*g; printf("Введите имя входного файла: "); scanf("%s",file1); printf("Введите имя выходного файла "); scanf("%s",file2); t=fopen(file1,"r"); g=fopen(file2,"w"); printf("\nСодержимое входного файла %s:\n",file1); while(!feof(t)) { c=getc(t); if (c!=10&& c!=-1) //символы конца строки и конца файла не считаются sum++; printf("%c", c); } fprintf(g,"%d",sum); printf("\nКоличество символов в тексте входного файла равно %d",sum); fclose(t); fclose(g); system("pause"); return 0;}Обработка файлов в потоковом режиме. Для работы с файлами используются специальные типы данных, называемые потоками. Поток ifstream служит для работы с файлами в режиме чтения. Поток ofstream служит для работы с файлами в режиме записи. Поток fstream служит для работы с файлами в режиме как чтения, так и записи. В программах на C++ при работе с текстовыми файлами в потоковом режиме необходимо подключать библиотеки iostream и fstream. Функция открытия файла Для того чтобы начать работать с текстовым файлом, необходимо описать переменную типа ofstream. Например, с помощью оператора ofstream F;будет создана переменная F для записи информации в файл. На следующем этапе файл необходимо открыть для записи. В общем случае оператор открытия файла будет иметь вид: F.open("file", mode);где F – переменная, описанная как ofstream; file – полное имя файла на диске; mode – режим работы с открываемым файлом. Существуют следующие режимы для открытия файла.
Параметр mode может отсутствовать, в этом случае файл открывается в режиме по умолчанию для данного потока: ios::in – для потоков ifstream, ios::out – для потоков ofstream. После удачного открытия файла (в любом режиме) в переменной F будет храниться 1 (true), в противном случае 0 (false). Это позволит проверять корректность операции открытия файла. Если открытие файла завершилось неудачей, объект, соответствующий потоку, будет возвращать значение 0: if (!ofs){ cout << "Файл не открыт\n"; }Проверить успешность открытия файла можно также с помощью функции is_open(), имеющей следующий прототип: Функция возвращает 1, если поток удалось связать с открытым файлом. Например, if (!ofs.is_open()) cout << "Файл не открыт\n";Открыть файл в режиме записи можно одним из следующих способов: Первый способ ofstream F;F.open("abc.txt", ios::out);Второй способ, режим ios::out является режимом по умолчанию для потока ofstream ofstream F;F.open("abc.txt");Третий способ объединяет описание переменной типа поток и открытие файла в одном операторе. ofstream F("abc.txt", ios::out);После открытия файла в режиме записи, будет создан пустой файл, в который можно будет записывать информацию. Если необходимо открыть существующий файл (при этом сохранить его содержимое), то в качестве режима следует использовать значение ios:: app. После открытия файла в режиме записи, в него можно писать точно так же, как и на экран, только вместо стандартного устройства вывода cout необходимо указать имя открытого для записи файла. Например, для записи в поток F переменной a, оператор вывода будет иметь вид: F << a;Для последовательного вывода в поток G переменных b, c и d оператор вывода станет таким: Чтение из файла выполняется корректно до достижения конца файла. Для проверки, достигнут ли конец файла, можно использовать функцию ios::eof(),которая имеет прототип int eof ();. Данная функция возвращает 0, если конец файла не достигнут, и значение 1 при достижении конца файла. Функция закрытия файла Открытые на диске файлы после окончания работы с ними рекомендуется закрыть. Оператор закрытия файла будет иметь вид: F.close;где F – переменная для записи информации в файл.
|
||||||||||||||||||||||||
Последнее изменение этой страницы: 2021-07-18; просмотров: 216; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.110.145 (0.006 с.) |