Бьерн Страуструп. Язык программирования С++ Второе дополненное издание


 Стандартные манипуляторы ввода-вывода



Pdf көрінісі
бет196/256
Дата11.07.2022
өлшемі2,87 Mb.
#37591
1   ...   192   193   194   195   196   197   198   199   ...   256
10.4.2.1 Стандартные манипуляторы ввода-вывода 
Это следующие манипуляторы: 
// Simple manipulators: 
ios& oct(ios&); // 
в восьмеричной записи 
ios& dec(ios&); // в десятичной записи 
ios& hex(ios&); // в шестнадцатеричной записи 
ostream& endl(ostream
&); // добавить '\n' и вывести 


Бьерн Страуструп.
Язык программирования С++ 
 
274 
ostream& ends(ostream&); // добавить '\0' и вывести 
ostream& flush(ostream&); // выдать поток 
istream& ws(istream&); // удалить обобщенные пробелы 
// Манипуляторы имеют параметры: 
SMANIP setbase(int b); 
SMANIP setfill(int f); 
SMANIP setprecision(int p); 
SMANIP setw(int w); 
SMANIP resetiosflags(long b); 
SMANIP setiosflags(long b); 
Например, 
cout << 1234 << ' ' 
<< hex << 1234 << ' ' 
<< oct << 1234 << endl; 
напечатает 
1234 4d2 2322 
и 
cout << setw(4) << setfill('#') << '(' << 12 << ")\n"; 
cout << '(' << 12 << ")\n"; 
напечатает 
(##12) 
(12) 
Не забудьте включить файл , если используете манипуляторы с параметрами. 
10.4.3 Члены ostream 
В классе ostream есть лишь несколько функций для управления выводом, большая часть таких функций 
находится в классе ios. 
class ostream : public virtual ios { 
//... 
public: 
ostream& 
flush(); 
ostream& 
seekp(streampos); 
ostream& seekp(streamoff, seek_dir); 
streampos 
tellp(); 
//... 
}; 
Как мы уже говорили, функция flush() опустошает буфер в выходной поток. Остальные функции 
используются для позиционирования в ostream при записи. Окончание на букву p указывает, что именно 
позиция используется при выдаче символов в заданный поток. Конечно эти функции имеют смысл
только если поток присоединен к чему-либо, что допускает позиционирование, например файл. Тип 
streampos представляет позицию символа в файле, а тип streamoff представляет смещение 
относительно позиции, заданной seek_dir. Все они определены в классе ios: 
class ios { 
//... 
enum seek_dir { 
beg=0, 
// от начала файла 
cur=1, 
// от текущей позиции в файле 
end=2
// от конца файла 
}; 


Бьерн Страуструп.
Язык программирования С++ 
 
275 
//... 
}; 
Позиции в потоке отсчитываются от 0, как если бы файл был массивом из n символов: 
char file[n-1]; 
и если fout присоединено к file, то 
fout.seek(10); 
fout<<'#'; 
поместит # в file[10]. 


Достарыңызбен бөлісу:
1   ...   192   193   194   195   196   197   198   199   ...   256




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет