Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Форматируемый вывод



Простой ввод/вывод в С++ эффективен потому, что выполняет только минимальные преобразования в соответствии с используемыми типами данных. Для целых чисел преобразование такое же, как определенное по умолчанию преобразование для printf. Предложения

int i=5; cout << i;иint i=5; printf("%d", i);

дают одинаковый результат.

Форматирование позволяет определить для каждого активного потока систему исчисления для преобразования (десятичная, восьмеричная и шестнадцатеричная), заполнение слева или справа, формат с плавающей запятой (научный или фиксированный) и будут ли пропускаться при вводе пробелы. Другие параметры, которые можно изменять, включают ширину поля (для вывода) и символ, используемый для заполнения. Эти флаги можно проверять, устанавливать, очищать с помощью различных функций элементов.

int i = 87;cout.width(7); // устанавливает ширину поля, равной 7 cout.fill('*'); // устанавливает символ * для заполненияcout << i << '\n'; // выводит на экран *****87//после << ширина очищается и становится равной 0,cout << i << '\n'; // выводит на экран 87double d=3.14159;cout.precision(4);cout.width(8);cout << d << '\n'; // выводит на экран ***3.142

Установление width, равной 0 (по умолчанию) означает, что дисплей будет использовать столько позиций экрана, сколько необходимо. Если заданная ширина недостаточна для правильного представления, то считается, что ширина равна 0 (т.е. усечения нет). По умолчанию заполнение обеспечивает выравнивание справа (заполнение слева) для всех типов.

Setf и unsetf — это две общие функции для установки и очистки флагов формата:

cout.setf(ios::left);

Это устанавливает выравнивание слева. Unsetf работает таким же образом, но очищает выбранные биты.





Дата публикования: 2015-01-13; Прочитано: 207 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2025 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.141 с)...