Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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 оператор вывода станет таким: G << b << c << d;Чтение из файла выполняется корректно до достижения конца файла. Для проверки, достигнут ли конец файла, можно использовать функцию ios::eof(),которая имеет прототип int eof ();. Данная функция возвращает 0, если конец файла не достигнут, и значение 1 при достижении конца файла. Функция закрытия файла Открытые на диске файлы после окончания работы с ними рекомендуется закрыть. Оператор закрытия файла будет иметь вид: F.close;где F – переменная для записи информации в файл.
|
||||||||||||||||||||||
|
Последнее изменение этой страницы: 2021-07-18; просмотров: 265; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.006 с.) |
|||||||||||||||||||||||