Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Ввод-вывод данных ⇐ ПредыдущаяСтр 4 из 4
При работе с консольными приложениями существуют два основных способа ввода-вывода данных. Первый способ – это использование функций printf() и scanf(), унаследованных из языка С. Второй – использование объектов cin и cout языка С++. В одной программе не рекомендуют смешивать эти способы. Мы будем использовать второй способ. Примеры использования функций без труда можно найти в литературе по С++. Чтобы объекты cin и cout были доступны, как уже говорилось, нужно подключить к вашей программе заголовочный файл iostream. Объект cout используется для вывода в окно консоли. Ему с помощью операции < < (операции помещения в поток) передается то, что мы хотим вывести на экран. Это могут быть переменные любых стандартных типов, литералы, выражения. Например, символьный литерал – это последовательность любых символов, заключенная в кавычки. Для вывода нескольких элементов используется цепочка операций < <. В зависимости от типа данные из внутреннего представления преобразуются в текстовую строку, которая и выводится на экран. В цепочку можно также помещать специальные функции, которые называются манипуляторами, для форматирования данных. При использовании манипуляторов с параметрами необходимо подключить к программе заголовочный файл iomanip. Некоторые полезные манипуляторы: endl – включает в поток символ новой строки и выгружает буфер, используется для перехода на новую строку; setw(int) – устанавливает максимальную ширину поля вывода для следующего значения; setprecision(int) – устанавливает максимальное количество цифр в дробной части или общее количество значащих цифр для чисел в зависимости от формата; fixed – устанавливает формат числа «с фиксированной точкой»; scientific – устанавливает формат числа «научный»; left, right –выравнивание текста; setiosflags (long) – устанавливает флаги состояния потока; resetiosflags(long) – сбрасывает флаги состояния потока. Ниже перечислены флаги форматирования, которые чаще всего используются: ios:: left – выравнивание по левому краю; ios:: right – выравнивание по правому краю; ios:: fixed – печатать вещественные числа в форме с фиксированной точкой; ios:: scientific – печатать вещественные числа в форме мантиссы с порядком; ios:: showpoint – при выводе вещественных чисел печатать десятичную точку и дробную часть. Пример 1.3. Вывод чисел с использованием манипуляторов Результат работы программы виден на рисунке. Вместо манипуляторов для установки параметров форматирования можно также использовать перечисленные ниже методы объекта cout: setf(long) – устанавливает заданные флаги; unsetf(long) – сбрасывает заданные флаги; width(int) – устанавливает ширину поля вывода для следующего значения; precision(int) – устанавливает значение точности представления при выводе вещественных чисел. Пример 1.4. Вывод чисел с использованием методов объекта cout Результат выполнения этой программы точно такой же, как в предыдущем случае. В данном случае файл iomanip не нужен. Описание других флагов, манипуляторов и методов можно найти в дополнительной литературе, например, в [1, глава 10]. Ввод данных осуществляется с помощью объекта cin и операции > > (операции извлечения из потока). Если нужно ввести несколько величин, используется цепочка операций > >. При вводе последовательность символов, набранных на клавиатуре, после необходимых преобразований присваивается переменной, указанной справа от знака > >. Величины при вводе должны разделяться пробелами, знаками табуляции или символами перевода строки. Вещественные числа могут быть представлены как в форме с фиксированной точкой, так и с порядком. Например, на клавиатуре мы можем набрать как 0.0123, так и 1.23e-2. Это одно и то же число. Если при вводе символов вы допустили ошибку, ее можно исправить, пока не была нажата клавиша Enter. После нажатия Enter строка символов попадает в буфер ввода, откуда и берет данные операция > >. Если очередной символ оказывается недопустимым, то операция ввода прекращается.
|