Скачиваний:
24
Добавлен:
28.03.2021
Размер:
8.02 Кб
Скачать
1. Как осуществляется ввод/вывод данных в языке С++? 

В языке С++ ввод и вывод данных производится потоками байт.  Поток
(последовательность байт) − это логическое устройство (интерфейс), которое выдает и принимает информацию от/к пользователя и связано с
физическими устройствами ввода/вывода (файл, экран, клавиатура)
Поток (stream) – общий логический интерфейс с различными
устройствами, составляющими компьютер и подключаемые к нему. 

2. Что такое манипулятор ввода/вывода?

манипуляторы hex и oct используются для вывода числовой информации в
шестнадцатеричном или восьмеричном представлении соответственно.
Система ввода/вывода С++ включает второй способ изменения параметров форматирования по­тока. Для этого используются специальные функции, называемые манипуляторами (manipulators), которые могут включаться в выражения ввода/вывода. Для использования манипуляторов с параметрами в программу необходимо вклю­чить заголовочный файл iomanip.h.
Манипуляторы могут использоваться в составе выражений ввода/вывода.

dec 	Ввод/вывод данных в десятичной форме 	ввод и вывод
endl 	Вывод символа новой строки с передачей в поток всех данных из буфера 	вывод
ends 	Вывод нулевого символа 	вывод
flush 	Передача в поток содержи­мого буфера 	вывод
hex 	Ввод/вывод данных в шест­надцатиричной системе 	ввод и вывод
oct 	Ввод/вывод данных в восьме­ричной форме 	ввод и вывод
resetiosflags(long f) 	Сбрасывает флаги, указанные в f 	ввод и вывод
setbase(int base) 	Устанавливает базу счисле­ния равной параметру base 	вывод
setfill(int ch) 	Устанавливает символ заполнения равным ch 	вывод
setiosflags(long f) 	Устанавливает флаги, указанные в f 	ввод и вывод
setprecision(int p) 	Устанавливает число цифр после запятой 	вывод
setw(int w) 	Устанавливает ширину поля равной w 	вывод
ws 	Пропускает начальный символ-разделитель 	ввод

3. Напишите, как можно создать собственный манипулятор?

#include <iostream>
#include <iomanip>
using namespace std;
ostream& setup(ostream& stream) {
 stream.setf(ios::left);
 stream << setw(10) << setfill('$');
 return stream;
}
void main() {
 cout << 10 << " " << setup << 10;
} 

4. Для чего необходимы операторы new и delete? В чем их отличие от
функций malloc(), realloc(), calloc() free()?

В С++ для операций выделения и освобождения памяти используются
встроенные операторы new и delete. Оператор delete уничтожает объект, созданный с помощью оператора new. Оператор new только запрашивает область памяти. Нет никакой гарантии, что запрос всегда будет удовлетворен успешно, поскольку это зависит от состояния системы и доступности ресурсов памяти. Оператор new запрашивает надлежащий объем св+ободной памяти для хранения указанного типа и возвращает базовый адрес объекта. Когда память недоступна, оператор new возвращает NULL. 

5. Как выделить и освободить память, выделенную для одномерного и
двумерного массива примитивных типов?

int, float, double, char и т.д. Они являются «примитивными»

6. Как выделить и освободить память, выделенную для одномерного и
двумерного массива объектов пользовательского типа?



7. Что такое утечка памяти в программировании?

Утечка памяти - это уменьшение объёма доступной оперативной и виртуальной памяти за счёт ошибок в приложении, приводящих к тому, что более не нужная ему память им не освобождается
Если не освободить зарезервированную память после прекращения ее
использования, то она так и останется зарезервированной для приложения
даже после его завершения. Это в свою очередь, сократит объем системной
памяти, доступной для использования другими приложениями, а возможно,
даже замедлит выполнение приложений. Это называется утечкой памяти, и
ее следует избегать.

8. Что собой представляют cout, cin, cerr, clog?

Для ввода информации с клавиатуры используется объект cin.
Объект cout позволяет выводить информацию на стандартное
устройство вывода – экран. 
cerr -это стандартный поток ошибок, который используется для вывода ошибок.
clog используется для отображения ошибок, но в отличие от cerr ошибка сначала вставляется в буфер и сохраняется в буфере до тех пор, пока он не будет полностью заполнен. 

9. Для чего предназначены функции setiosflags и resetiosflags?

манипуляторы
setiosflags
resetiosflags 
используются для установки глобальных флагов, используемых при вводе и выводе информации. На эти флаги ссылаются как на переменные состояния. 
Манипулятор setiosflags() устанавливает указанные флаги (параметр mask), а
resetiosflags() сбрасывает (очищает) их. Для установки или сбрасывания
флагов, могут быть использованы функции setf() или unsetf(). 

10. Почему при вызове собственного манипулятора с одним
аргументом не передается ни одного аргумента? 
Соседние файлы в папке лабы салапура