![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Простой ввод/вывод в С++ эффективен потому, что выполняет только минимальные преобразования в соответствии с используемыми типами данных. Для целых чисел преобразование такое же, как определенное по умолчанию преобразование для 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!