- •Int main(){
- •Void unsetf( fmtflags флаги );
- •Int main(){
- •0 False
- •Iostream& manip_name (iostream& stream){
- •If (stream.Rdstate() & ios::eofbit)…
- •Istrea& putback( char ch );
- •Int main()
- •If (!f.Is_open()) return 1;
- •Istream& getline (char* buf, streamsize num);
- •Istream& getline (char* buf, streamsize num, char delim);
- •Int_type peek();
- •Istream& read(char* buf, streamsize num);
- •Istream& seekg( off_type offset, seekdir origin);
- •Istream& seekg( pos_type pos);
- •Istrstream::istrstream( const char* buf);
- •Istrstream::istrstream( const char* buf, streamsize size);
- •Int main(){
- •Int main(){
- •Istrstream si(s);
- •Int count;
- •Void reset(int n)
- •Int main()
- •Int main()
- •Int main(){
- •Int main(){
- •Int main () {
- •V.Push_back ((char*) "zippy");
- •V.Push_back ((char*) "motorboy");
- •Int main () {
Iostream& manip_name (iostream& stream){
// ...
return stream;
}
Особенности:
получает ссылку на поток ( при использовании этот аргумент не указывается )
возвращает ссылку на поток
создается для выполнения часто используемых операций
ostream& nr( ostream& stream){
stream << " **** " << endl;
return stream;
}
3.05
Перегрузка операторов вводы и вывода из потока.
Особенности:
оператор << - оператор вставки в поток
оператор >> - оператор извлечения
желательно чтобы полученные операторы были универсальными и работали сразными потоками
Перегрузка оператора >>
istream& operator<< ( istream& stream, class_name& obj);
Особенности:
не может быть членом класса
stream - ссфлка на поток ввода
obj - ссылка на объект пользовательского типа
возвращает ссылку на поток ввода для выполнения цепочек
для доступа к закрытым членам класса следует определять функцию как дружественную классу ( friend )
3.06
Пергрузка оператора <<
ostream& operator << (ostream& stream, class_name obj);
Особенности:
не может быть членом класса
stream - ссылка на поток ввода
obj - объект пользовательского типа
возвращает ссылку на поток для выполнения цепочек
для доступа к закрытым членам класса определять оператор как friend
3.07
Файловая система.
Предназначена для поддержки файлов.
Особенности:
файловая система - часть общей объекто-ориентированной системы ввода-вывода
соответствие принципам объектно-ориентированного программирования
дополнена особенностями поддержки файлов
Файлы.
Файл - физ. устройство с которым осуществляется всязь по обмуну данными.
Работа с файлами ведется с использованием потоков - абстрактное ( логическое ) устройство.
Файловый поток одновременно может быть связан только с одним файлом.
Все потоки в файловой системе одинаковы, а сами файлы мгут отличаться.
Принципы работы с файлом.
Чтобы работать с файлом вначале необходимо свящать его с некоторым потоком.
сначала задаем экземпляр файлового потока одного из типов ifstream, ofstream, fstream
для связи уже имеющегося потока и файла необходимо выполнить открытие файла
по окончанию оапботы с файлом необходимо разорвать связь с потоком, чтобы не осталось зависших данных, для этого используется закрытие файла.
Статус состояния ввыода - вывода.
Поток имеет набор флагов статуса состояния.
Для ios объявлена битовая маска iostate:
typedef T2 iostate;
static const iostate badbit, eofbit, failbit, goodbit;
goodbit - нормальное состояние ( не битовая маска )
eofbit - обнаружен конец файла
failbit - обнаружена исправимая ошибка
badbit - обнаружена критическая ошибка
Получение информации о статусе ввода-вывода
Первый сопсоб получения информации о статусе связан с функцией:
iostate rdstate();
Особенности:
Если ошибок не обнаружено, то возвращается значение goodbit;
При возникновении ошибок требуетсяя анализ битовых флагов ошибок:
