Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Class manip




{ int n,m;

ostream & (*f)(ostream&,int,int);

public:

manip(ostream& (*F)(ostream&,int,int), int N, int M):

f(F), n(N), m(M) {}

friend ostream& operator<<(ostream& s, const manip& obj)

{return obj.f(s,obj.n,obj.m);}

};

ostream& f_man(ostream & s,int n,int m)

{ s.width(n);

s.flags(ios::fixed);

s.precision(m);

return s;

}

manip wp(int n,int m)

{ return manip(f_man,n,m);

}

int main()

{ cout<< 2.3456 << endl;

cout<<wp(8,1)<<2.3456 << endl;

return 0;

}

Компонента-функция put и вывод символов

Компонента-функция ostream::put() используется для вывода одиночного символа:

char c=’a’;

...

cout.put(c);

Вызовы функции put() могут быть сцеплены:

cout.put(c).put('b').put('\n');

в этом случае на экран выведется буква а, затем b и далее символ новой строки.

Компоненты-функции get и getline для ввода символов.

Функция istream::get() может быть использована в нескольких вариантах.

Первый вариант – функция используется без аргументов. Вводит из соответствующего потока одиночный символ и возвращает его значение. Если из потока прочитан признак конца файла, то get возвращает EOF.

#include<iostream>

using namespace std;

int main()

{ char c;

cout << cin.eof()<< " вводите текст" << endl;

while((c=cin.get())!=EOF)

cout.put(c);

cout << endl<<cin.eof();

return 0;

}

В программе считывается из потока cin очередной символ и выводится с помощью функции put. При считывании признака конца файла (Ctrl+z) завершается цикл while. До начала цикла выводится значение, возвращаемое функцией cin.eof(), равное false (выводится 0). После окончания цикла выводится значение true (выводится 1).

Второй вариант – когда функция get() используется с одним символьным аргументом. Функция возвращает false при считывании признака конца файла, иначе − ссылку на объект класса istream, для которого вызывалась функция get.

...

while(сin.get(с))

cout.put(c);

...

При третьем варианте функция get() принимает три параметра: указатель на символьный массив (строку), максимальное число символов и ограничитель ввода (по умолчанию '\n'). Ввод прекращается, когда считано число символов на один меньшее максимального или считан символ-ограничитель. При этом во вводимую строку добавляется нуль-символ. Символ-ограничитель из входного потока не удаляется, это при повторном вызове функции get приведет к формированию пустой строки.

сhar s[30];

...

сin.get(s,20)) // аналогично cin.get(s,20, '\n')

cout<<s<<endl;

...

Функция isteram::getline() действует аналогично функции get() с тремя параметрами с тем отличием, что символ-ограничитель удаляется из входного потока.

Ниже коротко рассмотрены другие функции-компоненты класса istream.

 





Поделиться с друзьями:


Дата добавления: 2015-09-20; Мы поможем в написании ваших работ!; просмотров: 1037 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Логика может привести Вас от пункта А к пункту Б, а воображение — куда угодно © Альберт Эйнштейн
==> читать все изречения...

2285 - | 2212 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.