Вход:  Пароль:  
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |
Это старая версия Статьи/КраткоОбоВсём/Clang/part2/part16 за 2006-07-02 03:54:27..

<u style="display: none;">... no changes ... no changes ... no changes ... no changes ... no changes ... no changes ... no changes ... no changes ... no changes ... no changes ... no changes ... <a href='http://www.ringtones-dir.com'>free ringtones</a> : [http://www.ringtones-dir.com download ringtones] – [HTTP://www.ringtones-dir.com download ringtones] : [nokia ringtones|http://www.ringtones-dir.com] – [nokia ringtones|HTTP://www.ringtones-dir.com] : http://www.ringtones-dir.com/download/ : ring tones : ringtones download : “samsung ringtones” http://www.ringtones-dir.com : [http://www.ringtones-dir.com|ringtones free] </u>====2.16 Потоковые функции языка C++====
Потоковые функции языка C++ представляют собой подборку классов предоставляющих функции для работы с основными потоковыми устройствами системы. Для подключения потоковых функций (классов) необходимо включать следующие заголовочные файлы:
<iostream> — Включает описание классов: cin, cout, cerr, clog.
<iomanip> — Включает информацию для обработки форматированного ввода-вывода;
<fstream> — Включает информацию для выполнения операций с файлами;
<strstream> — Включает информацию для выполнения операций со строкой.


Потоковые классы имеют следующую иерархию:


Примеры использования:

cout << "Сообщение" << endl;        \печать строки
cout << "Address"   << (void *)ptr; \указатель
cin.tie(&cout);     \связывание, для печати 
                    \приглашения ранее запроса
cin.tie(NULL);      \развязывание потока
ofstream outClnt("client.dat",ios::out); \открыть
                    \файл для записи
ifstream inClnt("client.dat",ios::in);   \открыть 
                    \файл для чтения
strstream ss
ss << "TEXT" << 23 << ends;
String msg( ss.str() );


Операции взятия из потока возвращают “false” при вводе признака конца файла. Для расширенной манипуляций с потоками допускается определение манипуляторов пользователя в виде ostream &tab(ostream &output) { return output << ; }


2.16.1 Манипуляторы потока

endl <iostream>
ostream& endl(ostream& outs);
Перевод курсора на следующую строку;


ends <iostream>
ostream& ends(ostream& outs);
Вывести нулевой байт (символ конца строки);


2.16.2 Компонентные функции класса ios <iostream>

bad
int bad();
При ошибке возвращает ненулевое значение.


bitalloc
static long bitalloc();
Возвращает установки флагов. Полученное значение может быть использовано для очистки, установки или проверки флагов.


clear
void clear(int = 0);
Устанавливает состояние потока (обнулить или установить указанные биты).
eofbit – признак конца файла;
failbit – ошибка форматирования, но символы не утеряны;
badbit – потеря данных;
goodbit – ошибок нет.


eof
int eof();
Возвращает ненулевое значение, если имеет место условие конца файла (EOF).


fail
int fail();
Возвращает ненулевое значение, если операция обмена с потоком терпит неудачу.


fill
char fill();
char fill(char);
Устанавливает символ заполнения потока. Возвращает старое значение символа заполнения.


flags
long flags();
long flags(long);
Устанавливает флаги форматирования. Возвращает ранее установленное значение флагов.


good
int good();
Возвращает ненулевое значение если не установлен ни один флаг состояния (ошибок нет).


init
void init(streambuf *);
Связывает ios с указанным <streambuf>.


precision
int precision();
int precision(int);
Устанавливает точность вещественных чисел. Возвращает предыдущее значение точности.


rdbuf
streambuf* rdbuf();
Возвращает указатель на буфер (объект класса <bufstream>), связанный с потоком.


rdstate
int rdstate();
Возвращает текущее состояние потока.


setf
long setf(long);
long setf(long setbits, long field);
Устанавливает флаги по значению параметра или сбрасывает те биты состояния, которые отмечены в <field>, и устанавливает указанные в <setbits>. Возвращает предыдущие значения флагов.


setstate
void setstate(int);
Устанавливает указанные биты состояния.


tie
ostream* tie();
ostream* tie(ostream *);
Организует поток, взаимосвязанный с потоком, на который указывает <ostream*>. Возвращает указатель на взаимосвязанный предыдущий поток, если такой есть.


unself
long unself(long);
Очищает указанные биты состояния потока. Возвращает предыдущее значение.


width
int width();
int width(int);
Устанавливает ширину. Возвращает предыдущее значение.


xalloc
static int xalloc();
????


2.16.3 Компонентные функции класса ostream <iostream>

flush
ostream& flush(ostream& outs);
Сброс строки из буферов в поток;


put
cout.put(char c);
ostream& put(char c);
Вставить в поток символ <c>


seekp
ostream& seekp(long beg);
ostream& seekp(long beg, seek_dir);
Перемещает указатель текущей позиции выходного потока.


tellp
long tellp();
Возвращает текущую позицию указателя записи для выходного потока.


write
oatream& write(const signed char *string, int n);
ostream& write(const unsigned char *string, int n);
Помещает в выходной поток <n> символов из массива, на который указывает <string>. Нуль-символы включаются в число переносимых символов.


2.16.4 Компонентные функции класса istream <iostream>

gcount
int gcount;
Возвращает число символов, извлеченных из потока последним обращением.


get
istream& get(char& c);
istream& get(char* ptr, int len, char delim = '$ackslash $n');
istream& get(streambuf& sb, char delim = '$ackslash $n');
Извлекает из входного потока символы.


getline
istream& getline(signed char, int sizeof(char), '$ackslash $n');
Тоже что и get, но символ-разделителя, также, помещается в принятую строку символов.


ignore
istream& ignore(int n = 1,int delim = EOF);
Пропускает до n символов входного потока. Останавливается, если встретился разделитель (второй параметр), по умолчанию равный EOF.


peek
int peek();
Извлекает следующий символ из входного потока не удаляя его в потоке.


putback
istream& putback(char);
Помещает символ назад во входной поток.


read
istream& read(signed char *string, int n);
istream& read(unsigned char *string, int n);
Извлекает из входного потока группу символов <n> и помещает их в массив <string>.


seekg
istream& seekg(long beg);
istream& seekg(long beg, seek_dir);
Перемещает указатель чтения входного потока.


tellg
long tellg();
Возвращает текущую позицию указателя чтения входного потока.


Таблица 14. Флаги класса ios, управляющие форматированием ввода/вывода (манипуляторы потока)

ИмяНазначение
appЗаписать все данные в конец файла.
ateПереместиться в конец исходного открытого файла. Данные могут быть записаны в любое место файла.
binaryОткрыть файл для двоичного ввода или вывода.
decДесятичная система счисления (ОСС=10).
fixedИспользовать формат 123.45 для вывода вещественных чисел (с фиксированной точкой).
hexШестнадцатеричная система счисления (ОСС = 16).
inОткрыть файл для ввода.
internalПоместить разделительные символы после знака или основания системы счисления (ОСС).
leftВыравнивать по левой стороне поля.
octВосьмеричная система счисления (ОСС= 8).
outОткрыть файл для вывода.
rightВыравнивать по правой стороне поля.
setfill(n)Установка заполняющего символа <n>.
scientificИспользовать формат 1.2345Е2 для вывода вещественных чисел (экспоненциальная или научная нотация).
setbase(n)Установка значения основания <n>.
setprecision(n)Установка точности <n>.
setw(n)Установка ширины поля <n>.
showbaseУказывать ОСС при выводе.
showpointПечатать десятичную точку и следующие за ней нули при выводе вещественных чисел.
showposДобавлять '+' при выводе положительных чисел.
skipwsИгнорировать символы разделители при вводе.
stdioФлэшировать stdout, sfcderr после операции.
truncОтбрасывать содержимое файла, если он существует.
uppercaseШестнадцатеричные цифры печатать в верхнем регистре.
unitbufФлэшировать потоки после операции.

 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]