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



Pdf көрінісі
бет192/256
Дата11.07.2022
өлшемі2,87 Mb.
#37591
1   ...   188   189   190   191   192   193   194   195   ...   256
10.4.1.2 Поля вывода 
Функция width() устанавливает минимальное число символов, использующееся в последующей 
операции вывода числа или строки. Так в результате следующих операций 
cout.width(4); 
cout << '(' << 12 << ')'; 
получим число 12 в поле размером 4 символа, т.е. 
( 12) 
Заполнение поля заданными символами или выравнивание можно установить с помощью функции fill(), 
например: 
cout.width(4); 
cout.fill('#'); 
cout << '(' << "ab" << ')'; 
напечатает 
(##ab) 
По умолчанию поле заполняется пробелами, а размер поля по умолчанию есть 0, что означает "столько 
символов, сколько нужно". Вернуть размеру поля стандартное значение можно с помощью вызова 
cout.width(0); // ``столько символов, сколько надо'' 
Функция width() задает минимальное число символов. Если появится больше символов, они будут 
напечатаны все, поэтому 
cout.width(4); 
cout << '(' << "121212" << ")\n"; 
напечатает 
(121212) 
Причина, по которой разрешено переполнение поля, а не усечение вывода, в том, чтобы избежать 
зависания при выводе. Лучше получить правильную выдачу, выглядящую некрасиво, чем красивую 
выдачу, являющуюся неправильной. 
Вызов width() влияет только на одну следующую за ним операцию вывода, поэтому 
cout.width(4); 
cout.fill('#'); 
cout << '(' << 12 << "),(" << '(' <<12 << ")\n"; 
напечатает 
(##12),(12) 


Бьерн Страуструп.
Язык программирования С++ 
 
268 
а не 
(##12),(##12) 
как можно было бы ожидать. Однако, заметьте, что если бы влияние распространялось на все операции 
вывода чисел и строк, получился бы еще более неожиданный результат: 
(##12#),(##12# 

С помощью стандартного манипулятора, показанного в 10.4.2.1, можно более элегантно задавать 
размера поля вывода. 


Достарыңызбен бөлісу:
1   ...   188   189   190   191   192   193   194   195   ...   256




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

    Басты бет