Составители:
Рубрика:
В приведенном ниже примере строковый поток используется для формирования
сообщения, включающего текущее время и передаваемый в качестве параметра номер:
#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
Страницы
- « первая
- ‹ предыдущая
- …
- 121
- 122
- 123
- 124
- 125
- …
- следующая ›
- последняя »
