Программирование на языке высокого уровня. Марапулец Ю.В. - 123 стр.

UptoLike

Составители: 

В приведенном ниже примере строковый поток используется для формирования
сообщения, включающего текущее время и передаваемый в качестве параметра номер:
#include <strstrea.h>
#include <string.h>
#include <iostream.h>
#include <ctime.h>
using namespace std;
string message(int i)
{
ostrstream os;
time_t t;
time(&t);
os << " time: " << ctime(&t) << "number: "<< i << endl;
return os.str();
}
int main()
{
cout << message(22);
return 0;
}
4.1.5. Ошибочные состояния потоков ввода-вывода.
Каждый поток имеет связанные с ним ошибочные состояния. В базовом классе ios
определено поле state, которое представляет собой состояние потока в виде
совокупно-
сти битов:
enum io_state
{
goodbit= 0х00, //Нет ошибок
eofbit = 0х01, // Достигнут конец файла
failbit = 0х02, // Ошибка форматирования или преобразования
badbit = 0х04, // Серьезная ошибка, после которой
// пользоваться потоком невозможно
hardfail = 0х08 // Неисправность оборудования
};
Состоянием потока можно управлять с помощью методов и операций, представ-
ленных в таблице 4.8.
Наиболее часто используются следующие операции с флагами состояния потока.
//Проверить, установлен ли флаг
flag: if(stream_obj.rdstate() & ios: :flag)
// Сбросить флаг flag:
stream_obj.clear(rdstate() &~ios::flag)
// Установить флаг flag:
stream_obj.clear(rdstate() | ios::flag)
//Установить флаг flag и сбросить все остальные:
stream_obj.clear( ios::flag)
//Сбросить все флаги:
stream_obj.clear()
123
    В приведенном ниже примере строковый поток используется для формирования
сообщения, включающего текущее время и передаваемый в качестве параметра номер:

#include 
#include 
#include 
#include 
using namespace std;
string message(int i)
{
      ostrstream os;
      time_t t;
      time(&t);
      os << " time: " << ctime(&t) << "number: "<< i << endl;
      return os.str();
}
int main()
{
      cout << message(22);
      return 0;
}

     4.1.5. Ошибочные состояния потоков ввода-вывода.

     Каждый поток имеет связанные с ним ошибочные состояния. В базовом классе ios
определено поле state, которое представляет собой состояние потока в виде совокупно-
сти битов:
enum io_state
{
     goodbit= 0х00, //Нет ошибок
     eofbit = 0х01, // Достигнут конец файла
     failbit = 0х02, // Ошибка форматирования или преобразования
     badbit = 0х04, // Серьезная ошибка, после которой
     // пользоваться потоком невозможно
     hardfail = 0х08 // Неисправность оборудования
};

    Состоянием потока можно управлять с помощью методов и операций, представ-
ленных в таблице 4.8.
    Наиболее часто используются следующие операции с флагами состояния потока.

//Проверить, установлен ли флаг
flag: if(stream_obj.rdstate() & ios: :flag)
// Сбросить флаг flag:
stream_obj.clear(rdstate() &~ios::flag)
// Установить флаг flag:
stream_obj.clear(rdstate() | ios::flag)
//Установить флаг flag и сбросить все остальные:
stream_obj.clear( ios::flag)
//Сбросить все флаги:
stream_obj.clear()


                                            123