
- •Предисловие
- •Раздел I. Основы алгоритмизации
- •1. Общие понятия
- •2. Классификация алгоритмов
- •2.1. Циклы с известным числом повторений
- •2.2. Циклы с неизвестным числом повторений
- •2.3. Сложные циклы
- •2.4. Алгоритмы с массивами
- •2.5. Алгоритмы вычисления степенных полиномов
- •2.6. Алгоритмы нахождения наибольшего (наименьшего) из множества значений
- •Раздел II. Элементы программирования на языке С++
- •3. Из истории развития языка С++
- •4. Структура программы на языке С++
- •5. Ввод и вывод в С++
- •6. Основные элементы языка С++
- •6.1. Алфавит
- •6.2. Идентификаторы
- •6.3. Переменные и константы
- •7. Операции и выражения
- •7.1. Выражение и его интерпретация
- •7.2. Арифметические операции
- •7.3. Логические операции и операции отношения
- •7.4. Операция условия
- •7.5. Операция присваивания
- •7.6. Операция sizeof
- •7.7. Преобразование типов
- •7.8. Порядок выполнения операций
- •8. Операторы управления
- •8.1. Общие сведения
- •8.2. Оператор if
- •8.3. Операторы switch
- •8.4. Оператор while
- •8.5. Оператор for
- •8.6. Операторы break и continue
- •9. Функции
- •9.1.Описание функции
- •9.2. Правила работы с функциями
- •9.3. Передача параметров
- •10. Указатели
- •10.1. Назначение указателей
- •10.3. Выражения и арифметические действия с указателями
- •11. Массивы
- •11.1. Одномерные массивы
- •11.2. Многомерные массивы
- •11.3. Примеры использования массивов
- •11.4. Массивы и функции
- •11.5. Массивы и указатели
- •12.Форматирование ввода-вывода
- •12.2. Неформатированный ввод - вывод
- •13. Область видимости переменных
- •14. Работа с файлами
- •15. Структуры
- •16. Классы
- •16.1. Определение класса
- •16.2. Доступ к элементам класса и их область действия
- •16.3. Отделение интерфейса от реализации
- •16.4. Управление доступом к элементам
- •16.5. Дружественные функции и дружественные классы
- •Библиографический список
- •Предметный указатель
83
// Пример программы на использование манипулятора width
#include <iostream.h> #include <iomanip.h> #include <conio.h> main()
{ int n=25; clrscr();
for(int i=0; i< 5; i++)
{
cout.width(i); cout <<n<<endl;
}
cout<<"\nНажмите любую клавишу ..."; getch();
return 0;
}
Рис.12.4
Если в программе на рис. 12.3 оператор cout<<setw(i)<<n<<endl; заменить на cout <<setfill('*')<<setw(i)<<n<<endl; , т.е. ввести модификатор setfill, то заполняющие символы изменятся, и результаты выполнения программы будут иметь вид
25
25
25
*25
**25
12.2. Неформатированный ввод - вывод
Неформатированный ввод-вывод выполняется с помощью функцийэлементов read и write. Функция read вводит в память, а функция write выводит из памяти некоторое число байтов символьного массива. Эти байты не подвергаются какому-либо форматированию. Они просто вводятся или выводятся в качестве сырых байтов данных. Например, вызов
char buffer[ ] = “Поздравляем с днем рождения “; cout . write (buffer,12);
выводит первые 12 байтов символьного массива buffer[ ]. Поскольку символьная строка указывает на адрес своего первого символа, то вызов
cout . write (“ABCDEFGYIJKLMNOPRST”,10);
отобразит на экране первые 10 символов алфавита. Функция-элемент read вводит в память указанное число символов из массива. Функция-элемент gcount сообщает о количестве символов, прочитанных последней операцией ввода. Программа на рис. 12.5 показывает работу функций-элементов read, write и gcount. Она вводит 20 символов (из более длинной входной последова -