Добавил:
margarita_rusheva
rushevamar@mail.ru
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:лабы салапура / ооп кв 2
.txt1. Как осуществляется ввод/вывод данных в языке С++?
В языке С++ ввод и вывод данных производится потоками байт. Поток
(последовательность байт) − это логическое устройство (интерфейс), которое выдает и принимает информацию от/к пользователя и связано с
физическими устройствами ввода/вывода (файл, экран, клавиатура)
Поток (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. Почему при вызове собственного манипулятора с одним
аргументом не передается ни одного аргумента?
Соседние файлы в папке лабы салапура