Файлы
<<  Файловый ввод-вывод данных в Pascalе Листая страницы каталога компании NSP: кардиопротекторы  >>
Картинок нет
Картинки из презентации «Файловый ввод-вывод с применением потоков» к уроку информатики на тему «Файлы»

Автор: vig. Чтобы познакомиться с картинкой полного размера, нажмите на её эскиз. Чтобы можно было использовать все картинки для урока информатики, скачайте бесплатно презентацию «Файловый ввод-вывод с применением потоков.ppt» со всеми картинками в zip-архиве размером 52 КБ.

Файловый ввод-вывод с применением потоков

содержание презентации «Файловый ввод-вывод с применением потоков.ppt»
Сл Текст Сл Текст
1Файловый ввод/вывод с применением 14!= EOF) counInBin++; } while (ifbin); cout
потоков. Библиотека С++ содержит три << "Число символов, прочитанных
специализированных класса для файлового в режиме binary =" <<
ввода.вывода: ifstersm: Для операций с countInBin << endl; int countInTxt =
входным дисковым файлом ofsteram: Для 0; do { if (iftxt.get() != EOF)
операций с выходным дисковым файлом counInTxt++; } while (iftxt); cout
fstream: Для входных и выходных файлов << "Число символов, прочитанных
Эти классы являются производными в режиме text =" << countInTxt
соответственно от istream, osteram и << endl; return 0; }.
iosteram Т.о. они наследуют все их 15При открытии файла в текстовом режиме
функциональные особенности (перегруженные (без ios::binary): каждая пара возврат
операции <<, >> для встроенных каретки/первод строки при вводе
типов, флаги формата, состояния потока и преобразуется в единственный символ
т.д.). перевода строки ( '\n' ) каждый перевод
2Файловый ввод/вывод с применением строки при выводе преобразуется в пару.
потоков. Конструкторы файловых потоков 161. Чтение/запись необработанных
открытие файла режимы доступа замена данных. Функция read позволяет извлекать
буфера потока закрытие буфера. из потока указанное число символов,
31. Конструкторы файловых потоков. Для записывая их в буфер: istream&
каждого из трех классов файловых потоков istream::read( char* p, int len);
прeдусмотрено четыре конструктора 1) istream& istream::read( signed char*
Конструировать объект не открывая файла p, int len); istream&
ifstersm(); ofsteram(); fstream(); 2) istream::read(unsigned char* p, int len);
Конструировать объект, открыть файл и p - буфер для записи прочитанных символов
прикрепить объект к файлу ifsteram( const len - максимальное число символов, которые
char *name, int omode = ios::in, int prot должны быть прочитаны.
= filebuf::openprot ); ofsteram( const 171. Чтение/запись необработанных
char *name, int omode = ios::out, int prot данных. Функция write позволяет поместить
= filebuf::openprot ); fsteram( const char в поток указанное число символов, из
*name, int omode, int prot = буфера: istream& istream::write( char*
filebuf::openprot ); s, int n); istream& istream::write(
43) Конструировать объект и прикрепить signed char* s, int n); istream&
объект к уже существующему файлу. istream::write(unsigned char* s, int n); s
Указывается дескриптор файла ifstersm(int - буфер-источник n - число символов,
f); ofsteram(int f); fstream(int f); 4) которые должны быть записаны.
Конструировать объект, ассоциированный с 18#include <iostream.h> #include
указанным буфером, прикрепить объект к уже <fstream.h> int i = 12345; long
открытому файлу. Специфируется дескриптор l=98765432; float f=4.536271; double
файла ifstersm(int f, char *b, int len); d=2.4e12; char msg[]= "Hello";
ofsteram(int f, char *b, int len); const char bFname[]= "_IO.BIN";
fstream(int f, char *b, int len); const char tFname[]= "_IO.TXT";
52. Открытие файла. Чтобы открыть файл int main(void) { // В текстовом режиме
можно использовать конструкторы ifstersm, ofsream ofs( tFname); if (ofs) //
ofsteram, fstream Пример применения Проверить поток { ofs << i
ifstersm, ofsteram. <<'\t' << l <<'\t'
6#include <iostream.h> #include << f <<'\t' << d
<fstream.h> #include <<'\t' << msg << endl;
<stdlib.h> #include <ctype.h> ofs.close(); } ifsream ifs( tFname); if
int main(void) { cout << (ifs) // Проверить поток { ifs >> i
"Введите имя входного файла: "; >> l >> f >> d >>
char fname[_MAX_PATH]; cin >> fname; msg; ifs.close(); } // Теперь в бинарном.
ifstream ifs(fname); // Открыть поток if 19ofs.open(bName, ios::out |
(!ifs) { cout << "Невозможно ios::binary); if (ofs) // Проверить поток
открыть файл"; return 0; } // { ofs.write( (char*)&i, sizeof(i) );
Проверить поток cout << ofs.write( (char*)&l, sizeof(l) );
"Введите имя выходного файла:"; ofs.write( (char*)&f, sizeof(f) );
cin >> fname; ofstream ofs(fname); ofs.write( (char*)&d, sizeof(d) );
if (!ofs) { cout << "Невозможно ofs.write( msg, sizeof(msg) );
открыть файл"; return 0; } char c; ofs.close(); } ifs.open(bName, ios::out |
while (ifs && ofs) // Пока не ios::binary); if (ifs) // Проверить поток
произойдет ошибки { ifs.get(c); // { ofs.read( (char*)&i, sizeof(i) );
Прочитать символ c =toupper(c); // ofs.read( (char*)&l, sizeof(l) );
Перевести в верхний режим ofs.put(c); // ofs.read( (char*)&f, sizeof(f) );
Записать в выходной поток cout << ofs.read( (char*)&d, sizeof(d) );
'.'; // Показать, что процесс жив } cout ofs.read( msg, sizeof(msg) ); ifs.close();
<< endl << "Выходной файл } return 0; }.
является копией входного" << 202. Чтение символа. Для извлечения из
"в верхнем регистре" << потока одиночного символа можно
endl; return 0; }. использовать метод int istream::get( )
7Пример: открыть файл, применив метод #nclude <iostream.h> int main(void)
open потока fstream #include { int ch; cout << "Введите
<iostream.h> #include число за которым следует #:"; while (
<fstream.h> #include (ch = cin.get() ) != '#' ) { if ( ch ==
<stdlib.h> int main(void) { fstream EOF ) break; cout << (char)ch; }
fin; char fname[_MAX_PATH]; cout << return 0; }.
"Введите имя файла: "; cin 212. Чтение символа. Можно применить
>> fname; fin.open( fname, ios::in); также один из перегруженных вариантов get(
// Открыть входной файл if (fin) // ) istream& istream::get(char&);
Проверить поток { cout << "Файл istream& istream::get(signed
открыт успешно" << endl; char&); istream&
fin.close(); // Закрыть файл } else { cout istream::get(unsigned char&);
<< "Ошибка" << endl; 22Например: #include <iostream.h>
} return 0; }. int main(void) { char ch; cout <<
83. Режимы доступа. При открытии файла "Введите число за которым следует
можно специфицировать параметр режим #:"; while ( cin.get(ch) ) { if ( ch
доступа, чтобы указать каким образом файл == '#' ) break; cout << (char)ch; }
должен открываться Параметр можно return 0; }.
составить из перечислителей битовых масок, 233. Чтение строки. В библиотеке С++
определяемых классом ios. enum open_mode { имеются функции get и getline для чтения
in = 0x01, // Открыть для чтения out = символов вплоть до ограничителя. Они часто
0x02, // Открыть для записи (подразумевает используются для чтения строк.
ios::trunc, // если не специфицированы 24get. Метод istream&
ios::in, ios::ate, ios::app ate = 0x04, // istream::get(char* _p, int _l, char _t)
искать eof при открытии app = 0x08, // извлекает символы из потока до тех пор,
Присоединить; добавить в конец файла // пока не будет найден ограничитель _t (по
подразумевается ios::out) trunc = 0x10, // умолчанию \n) будет прочитано _l символов
изменять файл, если уже существует встретится коней файла. Функция get не
nocreate =0x20, // показать ошибку, если извлекает ограничитель из потока и не
файл не существует noreplace =0x40, // помещает его в буфер.
показать ошибку, если файл уже существует 25#include <iostream.h> #include
binary =0x80 // двоичный (не текстовый ) <limits.h> const int MAX_LEN = 0x50;
файл }; int main(void) { char fname[MAX_LEN]; char
9Параметр mode в конструкторах и lname[MAX_LEN]; cout <<
методах классов ifstream и ofstream имеют "Введите ваше имя:";
значения по умолчанию. Это ios:in и cin.get(fname, sizeof(fname)); //
ios::out по умолчанию. Пример Прочитать имя с помощью get cout <<
использования параметра mode: "Привет" << fname <<
10#include <iostream.h> #include endl; cout << "Введите вашу
<fstream.h> const int MAX_LEN=80; фамилию:"; cin.ignore(INT_MAX, '\n');
const char fname[]= "NEWFILE"; // Очистить поток //(ограничитель не был
int main(void) // Создать новый файл, если извлечен) cin.get(lname, sizeof(lname));
только он уже не существует { ofstream ofs // Проитать имя с помощью get cout
(fname, ios:out | ios::noreplace); if << "Привет" << lname
(!ofs) { cout << "Ошибка" << endl; return 0; }.
<< fname << "уже 26getline. Этот метод тоже может быть
существует" << endl; } else { использован для извлечения из потока
ofs << "Привет, я новый символов до тех пор, пока не будет найден
файл"; ofs.close(); // Закрыть файл ограничитель _t (по умолчанию \n), не
fstream fs; // Определить новый объект будет прочитано определенное число
fs.open(fname, ios::out | ios::ate); // символов _l, или не встретится конец файла
Открыть файл и установить его на EOF fs istream& istream::getline(char* _p,
<< "к которому сделано int _l, char _t) Функция getline извлекает
добавление"; fs.close; fstream ограничитель, но не записывает его в
ifs(fname); //Снова открыть как входной if буфер.
(ifs) { cout << "Старый 27#include <iostream.h> const int
файл:" << endl; char MAX_LEN = 0x50; int main(void) { char
line[MAX_LEN]; ifs.getline(line, fname[MAX_LEN]; char lname[MAX_LEN]; cout
sizeof(line)); cout << line; } else << "Введите ваше имя:";
{ cout << "Ошибка при повторном cin.getline(fname, sizeof(fname)); //
открытии" << fname << Проитать имя с помощью get cout <<
endl; } } return 0; }. "Привет" << fname <<
114. Замена буфера потока. Можно endl; cout << "Введите вашу
управлять буферизацией потока с помощью фамилию:"; cin.getline(lname,
метода setbuf. Эта функция ассоциирует с sizeof(lname)); // Проитать имя с помощью
потоком указанный буфер void setbuf(char get cout << "Привет"
*p, int len); p - адрес буфера len - << lname << endl; return 0; }.
длина буфера. 28Другие часто используемые функции.
125. Закрытие буфера. В классах файловых Пропуск символов при вводе Проверка
потоков имеется метод close, который: счетчика извлечений Заглядывание вперед
опорожняет поток закрывает, закрепленный Позиционирование потока Выяснение текущей
за потоком файл Если при попытке закрыть позиции потока.
файл, происходит ошибка, устанавливается 29Пропуск символов при вводе. Функция
флаг failbit состояния потока. ignore istream& istream::ignore(int
Предполагается, что деструктор файлового n=1, int d=EOF); Извлекает сиволы из
объекта (или его базового класса) потока (не более n символов, по умолчанию
автоматически закрывает класс. 1), пока не встретится ограничитель d (по
13Неформатированный ввод/вывод. умолчанию EOF).
чтение/запись необработанных данных чтение 30Проверка счетчика извлечений. Функция
символа чтение строки Эти функции gcount int istream::gcount( ); возвращает
позволяют читать/записывать байты данных число символов, извлеченных последней
без модификации и часто применяются при функцией неформатированного ввода.
работе с бинарными файлами. В бинарном 31Заглядывание вперед. Функция peek; int
режиме данные при вводе/выводе не istream::peek(); возвращает возвращает
интерпретируются. Байты читаются и значение очередного символов, не извлекая
записываются без какой-либо модификации. его из входного потока функция возвращает
Чтобы открыть файл в бинарном режиме, EOF, если флаги состояния потока имеют
включите флаг ios::binary в параметр ненулевое значение.
open_mode, передаваемый конструктору 32Позиционирование потока. Функции seekg
потока или функции open. В следующем и seekp могут использоваться для
примере файл открывается в двоичном и позиционирования указателя
текстовом форматах: извлечения/помещения соответственно
14#include <iostream.h> #include входного и выходного потока: istream&
<fstream.h> #include istream::seekg(streampos); istream&
<stdlib.h> int main(void) { fstream istream::seekg(streamoff, ios::seek_dir);
fin; char name[_MAX_PATH]; cout << istream& istream::seekp(streampos);
"Введите имя входного файла: "; istream& istream::seekp(streamoff,
cin >> name; ifsream ifbin( name, ios::seek_dir);
ios::in | ios::binary); ifsream iftxt( 33Выяснение текущей позиции потока.
name, ios::in); if (!iftxt || !ifbin) // Функции tellg и tellp позволяют найти
Проверить поток { cout << текущую позицию соответственно входного и
"Ошибка при открытии файла " выходного потока strempos istream::tellg(
<< name << endl; return 0; } ); strempos ostream::tellp( );
int countInBin = 0; do { if (ifbin.get()
Файловый ввод-вывод с применением потоков.ppt
http://900igr.net/kartinka/informatika/fajlovyj-vvod-vyvod-s-primeneniem-potokov-92847.html
cсылка на страницу

Файловый ввод-вывод с применением потоков

другие презентации на тему «Файловый ввод-вывод с применением потоков»

«Файловый архив» - Использование архивов. Канал упр.2. Автоматическая идентификация пользователей осуществляется при помощи файла /etc/passwd. Mget и mput- предназначены для приёма/передачи набора файлов. FTP- сервер. Интерпретатор протокола сервера1. FTP- архив. Система взаимодействия компонентов FTP- обмена: Archie- индекс.

«Файловая система и файлы» - Объем файлов измеряется в см2. Файлы находятся в папках. В имени файла нельзя использовать цифры, знаки \ / * ? : « « < >. С:\Мои документы\SPORT\Russia.doc. Имя файла. Каждый файл определяют следующие параметры – длина, ширина, объем, цвет. Самая верхняя папка называется корневой (главной). В Windows 9х папки и файлы образуют на дисках иерархическую файловую структуру.

«Применение воды» - Вода в промышленности. Воды гидросферы используются, как. Молекула воды Н2О состоит из двух атомов водорода и одного атома кислорода. 1)сырьё 2)теплоноситель 3)транспортная система 4)растворитель 5)среда, в которую удаляются всевозможные отходы. Применение воды в промышленности.

«Устройства ввода» - Световое перо невозможно использовать с обычными ЖК-мониторами. Сенсорный экран. Сенсорный экран — устройство ввода информации. Какой вид информации можно вводить с помощью клавиатуры? - Основное устройство ввода информации от пользователя в компьютер. Также может прилагаться специальная мышь. Для устройств ввода и устройств вывода управляющие программы называются ДРАЙВЕРАМИ.

«Устройства вывода информации» - Недостатки струйных принтеров: Большой расход чернил; Высокая стоимость заправки. Чем больше разрешающая способность монитора, тем выше качество изображения. Лазерные принтеры применяются в офисах для печати документов. Матричные принтеры. Качество изображения определяется разрешающей способностью монитора.

«Файлы и файловая система» - Файлы. Сами файлы могут быть записаны, начиная с 34 сектора. Имя задается пользователем. Сами файлы сохраняются, ? возможно восстановление файловой системы. Пpoгpaммы-apxивaтopы paзличaютcя мeтoдaми cжaтия, имeющимиcя фyнкциями, интepфeйcoм. Операции с файлами: Файловая система LinuxExt2 используется в ОС Linux.

Файлы

24 презентации о файлах
Урок

Информатика

130 тем
Картинки
900igr.net > Презентации по информатике > Файлы > Файловый ввод-вывод с применением потоков