Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Организация ввода-вывода в С++

Все средства ввода-вывода в языке C++ реализованы в виде библиотечных перегруженных операций > (извлечения и вставки), манипуляторов, классов потоков, констант, глобальных переменных, функций и типов данных, находящихся в составе библиотеки управления потоками.Stream-библиотека выполнена в виде иерархии
Организация ввода-вывода в С++ Все средства ввода-вывода в языке C++ реализованы в виде библиотечных перегруженных операций Основные варианты организации ввода-выводаК основным вариантам организации ввода-вывода относятся:консольный форматированный ввод-вывод базовых Файловый ввод-выводДля обмена данными с файлами, размещенными на дисках, используются три стандартных Процесс работы с файлом через потоки можно разбить на 4 этапа: Создание При работе с потоками и файлами различают буферизированный (с использование буфера) и Копирование одного файла в другой#include #include // exit() // вспомогательная функцияvoid error Использование числовых значений#include #include 	// M_PIint main(){char rbuf[81];double r,h;ifstream fin ( Переназначение стандартных потоков.#include # include ifstream fin; ofstream fout; int main() {char
Слайды презентации

Слайд 2 Все средства ввода-вывода в языке C++ реализованы в

Все средства ввода-вывода в языке C++ реализованы в виде библиотечных перегруженных

виде библиотечных перегруженных операций > (извлечения и

вставки), манипуляторов, классов потоков, констант, глобальных переменных, функций и типов данных, находящихся в составе библиотеки управления потоками.
Stream-библиотека выполнена в виде иерархии классов, которые описаны в нескольких заголовочных файлах.
Подобно тому, как в файле iostream.h объявлены базовые средства ввода-вывода, обеспечивающие обмен данными между программой и стандартными устройствами ввода-вывода через потоки(streams), в файле fstream.h становятся доступны средства обмена данными между программой и файлами через потоки.

Слайд 3 Основные варианты организации ввода-вывода
К основным вариантам организации ввода-вывода

Основные варианты организации ввода-выводаК основным вариантам организации ввода-вывода относятся:консольный форматированный ввод-вывод

относятся:
консольный форматированный ввод-вывод базовых типов;
файловый форматированный ввод-вывод базовых типов;
файловый

символьный ввод-вывод;
файловый строко-ориентированный ввод-вывод;
форматированный обмен данными базовых типов со строкой в памяти.

Консольный форматированный ввод-вывод базовых типов осуществляется с помощью стандартных потоков cin и cout.


Слайд 4 Файловый ввод-вывод
Для обмена данными с файлами, размещенными на

Файловый ввод-выводДля обмена данными с файлами, размещенными на дисках, используются три

дисках, используются три стандартных класса файловых потоков: ifstream, ofstream

и iofstream.
Для того чтобы начать работу с файлами, расположенными на логических дисках, необходимо «создать» соответствующие потоки.

Слайд 5 Процесс работы с файлом через потоки можно разбить

Процесс работы с файлом через потоки можно разбить на 4 этапа:

на 4 этапа:
Создание потока (объявление переменной).
Связывание потока с файлом

и открытие (open) файла для работы в определенном режиме.
Обмен данными с файлом через поток: запись в поток; чтение из потока; управление состоянием потока.
Разрыв связи потока с файлом: освобождение буфера («флэширование» —flush),закрытие (close) файла и разрыв его связи с потоком.
При выполнении пунктов 2, 3, 4 следует контролировать наличие ошибок ввода-вывода средствами языка C++.


Слайд 6 При работе с потоками и файлами различают буферизированный

При работе с потоками и файлами различают буферизированный (с использование буфера)

(с использование буфера) и небуферизированный (без использования буферов) ввод-вывод.


Буфер (buffer) представляет собой область оперативной памяти для промежуточного хранения данных, передаваемых между программой и внешним устройством.
Вывод данных в поток с буфером приводит к выводу этих данных в соответствующий файл только после заполнения буфера.
Вывод данных в небуферизованный поток приводит к немедленному выводу в файл.
Символы извлекаются из потока методом getline() и помещаются в буфер. Число символов, помещаемых в буфер, задается вторым параметром функции getline(). При этом считывание происходит не более чем до первого встреченного символа-ограничителя «конец файловой строки», который представляется двумя символами '\r' и '\n'.
Метод getiine()извлекает символ-ограничитель из потока, но не помещает его в буфер. Поэтому после каждого вывода содержимого буфера в поток fout вставляется и символ ограничитель. При использовании потока cin символ-ограничитель появляется в потоке при нажатии клавиши .
cerr – не буферизированный поток для стандартного вывода сообщений об ошибках (по умолчанию – на монитор);

Слайд 7 Копирование одного файла в другой
#include
#include //

Копирование одного файла в другой#include #include // exit() // вспомогательная функцияvoid

exit() // вспомогательная функция
void error (const char * message)
{
cerr

<<'\n' << message <<'\n' ;
exit(1);
}
int main ()
{
char buf[128]; // вспомогательный буфер
ifstream fin; // 1. Создание потоков двух классов
ofstream fout;
fin.open("С:\\in.dat"); // 2. Открытие файлов в соответствующих режимах и связывание их с потоками
if (!fin.good()) error("He могу открыть файл для чтения.");
fout.open("С:\\out.dat");
if (fout.fail()) error("He могу открыть файл для записи.");
char ch; // 3. Выполнение операций обмена
while (fin.getline(buf, sizeof(buf))) fout << buf <if (!fin.eof() || !fout.good())
error("Ошибка ввода-вывода при копировании файлов");
fin.close(); // 4. Закрытие файлов, разрыв связей потоков с файлами
fout.close();
return 0;
}

Рассмотрим программу копирования файла in.dat в файл out.dat. Предполагается, что файлы находятся в корневом каталоге логического диска С. Файл in.dat содержит строки символов, Длина файловой строки не превосходит 128 символов.

Для данного примера причинами выдачи сообщений «Не могу открыть файл...» могут быть следующие:
отсутствие файла in.dat в корневом каталоге логического диска A или его особые атрибуты;
неготовность устройства (не вставлена дискета, не закрыт карман и др.);
у существующего файла out.dat установлен атрибут «только для чтения» или другие особые атрибуты.


Слайд 8 Использование числовых значений
#include
#include // M_PI
int main()
{
char rbuf[81];
double

r,h;
ifstream fin ("PARAM.DAT");
if (!fin.good())
{cerr

файл параметров."; return 1;}
fin >> r; fin.getline(rbuf,sizeof(rbuf));
fin >> h; fin.getline(rbuf,sizeof(rbuf));
ofstream fout("RESULT.DAT");
fout << M_pi*r*r*h << " // v " << endl;
return 0;
}

В файле param.dat записаны значения двух параметров программы в следующем виде:
5.6 // r
4.7 // h
Программа записывает в файл result.dat объем цилиндра, вычисленный на основе значений из файла param.dat.


Слайд 9 Переназначение стандартных потоков.
#include
# include
ifstream fin;

Переназначение стандартных потоков.#include # include ifstream fin; ofstream fout; int main()


ofstream fout;
int main()
{
char buf[1];
fin.open("input.dat");
if(fin.good()) cin = fin;

// переназначение cin
else {cerr <<"He могу открыть файл 'input.dat' "; exit(l);}
fout.open("output.dat");
if(fout.good()) cout = fout; // переназначение cout
while(!cin.eof())
cin.read(buf, sizeof(buf));
cout.write(buf, sizeof (buf));
return 0;
}

Приведенная программа осуществляет посимвольное копирование содержимого, входного файла в выходной файл при помощи методов write() и read() неформатированного ввода-вывода.


  • Имя файла: organizatsiya-vvoda-vyvoda-v-s.pptx
  • Количество просмотров: 126
  • Количество скачиваний: 0