Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Потоковый ввод-вывод данных






     

    Процесс ввода-вывода данных предполагает обмен данными между ОП и внешними устройствами. Например, между ОП и клавиатурой, ОП и жестким диском и др. Под вводом понимается запись данных с внешнего устройства в ОП; под выводом – чтение информации из ОП и перенос этой информации на внешнее устройство.

    В языке С++ процесс ввода-вывода информации тесно связан с понятием потока – последовательностью байтов, передаваемой в процессе ввода-вывода данных. Так как при вводе-выводе информации создается связь между ОП и внешними устройствами, то в процессе выполнения программы созданные потоки связываются с конкретными внешними устройствами. По-другому говорят, что поток направлен на внешнее устройство.

    При запуске программы кроме потоков, которые объявляет программист, создаются три основных стандартных потока:

    1) stdin – поток стандартного ввода (как правило связан с клавиатурой);

    2) stdout – поток стандартного вывода (обычно связан с монитором);

    3) stderr – поток сообщений об ошибках (всегда связан с монитором).

     

    2. Форматированный ввод-вывод в С++

     

    В разделе «Линейные вычислительные процессы» были рассмотрены функции ввода–вывода printf() и scanf(). В языке С++ существует стан­дартная библиотека (головной файл), ориентированная на организацию потокового форматированного ввода-вывода – iostream.h. Потоковый форматированный ввод-вывод в С++ основан на понятии объектов, под которыми понимаются величины, содержащие в себе свойства (характеризуют состояние объекта в данный момент времени) и методы (функции, которые могут изменять свойства объекта).

    В библиотеке iostream.h описаны два объекта:

    1) cout – поток вывода, связанный с дисплеем;

    2) cin – поток ввода, связанный с клавиатурой.

    Знак < < (два знака меньше подряд) обозначает операцию вставки символов в поток вывода cout, а знак > > (два знака больше подряд) – операцию извлечения из потока ввода cin:

    int i;

    float f;

    cout< < " Введите целое число "; //на монитор выводится текст

    cin> > i; //с клавиатуры вводится целое число

    f=5.9*i;

    //на монитор выводится текст и значение переменной

    cout< < " Значение f = " < < f< < " \n";

    Часть строки " \n" обозначает перевод курсора на следующую строку.

    Для организации форматированного потокового ввода-вывода в С++ существуют два средства: применение флагов форматирования; применение манипуляторов.

    Флаги форматирования управляют форматом выводимых значений и тесно связаны с объектно-ориентированным программированием, поэтому в этом разделе не будем их рассматривать.

    Для управления форматами потокового вывода можно использовать специальные функции, называемые манипуляторами. Доступ к стандартным манипуляторам можно получить, подключив файл iomanip.h. Список стандартных манипуляторов:

    Манипулятор Назначение манипулятора
    dec Десятичный формат
    endl Вывод " \n" и освобождение буфера
    hex Шестнадцатеричный формат числа
    setbase(int baz) Установить основание системы счисления baz
    setfill(char ch) Установить символ заполнения ch
    setprecision (int pr) Установить рr цифр в дробной части
    setw(int wd) Установить ширину wd поля выдачи

    Пример. Вывести на экран таблицу из 10 значений функций . Для форматирования таблицы результатов использовать манипуляторы.

     

    Программа, реализующая эту задачу:

     

    #include < iostream.h>

    #include < math.h>

    #include < iomanip.h>

    int main()

    {

    float a, b, x, h;

    int i;

    a=0;

    b=4*atan(1);

    h=(b-a)/10;

    cout< < " x sin(x) cos (x)" < < endl;

    cout< < endl;

    x=a;

    for(i=1; i< =10; i++)

    {

    cout< < setprecision (4)< < setw(7)< < x< < " "

    < < setprecision(4)< < setw(7)< < sin(x)< < " "

    < < setprecision(4)< < setw(7)< < cos(x)< < endl;

    x=x+h;

    }

    return 1;

    }

    Результат работы программы:

    Под каждое выводимое значение выделяется по 7 позиций на экране. По умолчанию число занимает крайнюю правую позицию в отведенном под него поле. Оставшиеся слева позиции занимает символ-заполнитель. По умолчанию символом-заполнителем является пробел. Однако с помощью манипулятора setfill() его можно заменить. Если в крайних правых позициях оказываются нули, то они не выводятся. Действие манипулятора распространяется только на значение, непосредственно следующее за ним в потоке вывода.

     






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.