Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лекции программирование / polevoy_cpp_2012_spring_lecture_07

.pdf
Скачиваний:
32
Добавлен:
20.04.2015
Размер:
136 Кб
Скачать
☆

Проверка состояния потока

•good()

–goodbit

•eof()

–eofbit или badbit

•fail()

–failbit или badbit

•bad()

–badbit

24.03.2012

cppNewb.ru

51

Установка состояния потока

•clear(iostate _State = goodbit)

–сбросить все флаги и установить заданные

•setstate(iostate _State)

–установить флаги

пример:

cout.clear(ios::failbit);

cout.setstate(ios::failbit | ~ios::goodbit);

24.03.2012

cppNewb.ru

52

Исключения в потоках

•поток может генерировать исключения std::ios_base::failure для заданных флагов состоянии

•exceptions

–устанавливает статусы

пример:

stmFile.exceptions(ios::badbit);

24.03.2012

cppNewb.ru

53

Неформатированный ввод

•чтение отдельного символа или последовательности из потока

•get

–прочитать из потока отдельный символ

•read

–прочитать из потока последовательность

24.03.2012

cppNewb.ru

54

Неформатированный вывод

•вывод отдельного символа или последовательности в поток

•put

–записать в поток отдельный символ

•write

–записать в поток последовательность

24.03.2012

cppNewb.ru

55

Файловые потоки

•прикрепляются к объектам файловой системы

•ofstream

•ifstream

•fstream

24.03.2012

cppNewb.ru

56

Цикл работы с файлом

•конструктор

•open

•close

•деструктор

пример:

ifstream inData(path);

24.03.2012

cppNewb.ru

57

Режим открытия файла (флаги)

•ios::in

–чтение (без усечения)

•ios::out

–запись (без усечения)

•ios::app

–дописывание

24.03.2012

cppNewb.ru

58

Режим открытия файла (флаги)

•ios::ate

–существующий файл (чтение, запись в конец)

•ios::trunc

–существующий файл (запись с начала)

•ios::binary

–двоичный режим

24.03.2012

cppNewb.ru

59

Файловый поток (пример)

fstream dataFile(path.c_str() , ios::ate);

dataFile << obj1; dataFile << obj2; dataFile.close();

…

dataFile.open(path.c_str(), ios::in);

…

24.03.2012

cppNewb.ru

60