Ввод-вывод данных с использованием библиотеки потокового ввода вывода





Механизм для ввода-вывода в C++ называется потоком, так как информация вводится и выводится в виде потока байтов – символ за символом.

Библиотека потоков ввода-вывода (iostream.h) определяет три глобальных объекта: cout, cin и cerr.

Для использования возможностей библиотеки необходимо в начале программы указать директиву using namespace std;

cout называется стандартным выводом, cin – стандартным вводом, cerr – стандартным потоком сообщений об ошибках. cout и cerr выводят на терминал и принадлежат к классу ostream, cin имеет тип istream и вводит с терминала.

Вывод осуществляется с помощью операции <<, ввод с помощью операции >>. Выражение

cout << "Пример вывода: " << 34;

напечатает на терминале строку "Пример вывода", за которым будет выведено число 34. Выражение

int x;

cin >> x;

введет целое число с терминала в переменную x. (Разумеется, для того, чтобы ввод произошел, на терминале нужно напечатать какое-либо число и нажать клавишу возврат каретки.)

#include <iostream> подключает библиотеку потокового ввода-вывода. Файл заголовков определяет глобальный объект этого класса cout. Объект называется глобальным, поскольку доступ к нему возможен из любой части программы. Этот объект выполняет вывод на консоль. В функции main мы можем к нему обратиться и послать ему сообщение:

 

#include "stdafx.h"

#include <iostream>

 

using namespace std;

int main()

{

cout << "Hello world!" << endl;

return 1;

}

Операция сдвига << определена как "вывести". Таким образом, программа посылает объекту cout сообщения "вывести строку Hello world!" и "вывести перевод строки" (endl обозначает перевод на новую строку). В ответ на эти сообщения объект cout выведет строку "Hello world!" на консоль и переведет курсор на следующую строку.

Подключение заголовочного файла #include "stdafx.h" не является обязательным с точки зрения языка C++, однако среда разработки Visual Studio 2008 требует его подключения для включения прекомпиляции заголовочных файлов. Данная возможность позволяет ускорить компиляцию и запуск программы.

 

 

Манипуляторы и форматирование ввода-вывода

Часто бывает необходимо вывести строку или число в определенном формате. Для этого используются так называемые манипуляторы.

Манипуляторы – это объекты особых типов, которые управляют тем, как обрабатывают последующие аргументы. Некоторые манипуляторы могут также выводить или вводить специальные символы. Манипуляторы позволяют задавать формат вывода чисел.

Таблица 1 – Манипуляторы потокового ввода-вывода

Манипулятор Назначение
endl при выводе перейти на новую строку;
ends вывести нулевой байт (признак конца строки);
flush вывести и очистить все промежуточные буферы;
dec выводить числа в десятичной системе (по умолчанию);
oct выводить числа в восьмеричной системе;
hex выводить числа в шестнадцатеричной системе счисления;
setw (int n) установить ширину поля вывода в n символов (n – целое число);
setfill(int n) установить символ-заполнитель, которым выводимое значение будет дополняться до необходимой ширины;
setprecision(int n) установить количество цифр после запятой при выводе вещественных чисел;
setbase(int n) установить систему счисления для вывода чисел; n может принимать значения 0, 2, 8, 10, 16, причем 0 означает систему счисления по умолчанию, т.е. 10.

Использовать манипуляторы просто – их надо вывести в выходной поток. Выведем одно и то же число в разных системах счисления:

 

int x=53;

cout <<"Десятичный вид: " << dec << x << endl

<< "Восьмиричный вид: " << oct << x << endl

<<"Шестнадцатиричный вид:" << hex << x << endl;

 

Аналогично используются манипуляторы с параметрами. Вывод числа с разным количеством цифр после запятой:

 

double x;

// вывести число в поле общей шириной

// 6 символов (3 цифры до запятой,

// десятичная точка и 2 цифры после запятой)

cout << setw(6) << setprecision(2) << x << endl;

 

Те же манипуляторы (за исключением endl и ends) могут использоваться и при вводе. В этом случае они описывают представление вводимых чисел. Кроме того, имеется манипулятор, работающий только при вводе, это ws. Данный манипулятор переключает вводимый поток в такой режим, при котором все пробелы (включая табуляцию, переводы строки, переводы каретки и переводы страницы) будут вводиться. По умолчанию эти символы воспринимаются как разделители между атрибутами ввода.

int x;

// ввести шестнадцатеричное число

cin >>hex >>x;





Читайте также:
Отчет по производственной практике по экономической безопасности: К основным функциональным целям на предприятии ООО «ХХХХ» относятся...
Экономика как подсистема общества: Может ли общество развиваться без экономики? Как побороть бедность и добиться...
Ограждение места работ сигналами на перегонах и станциях: Приступать к работам разрешается только после того, когда...
Основные направления модернизма: главной целью модернизма является создание...

Рекомендуемые страницы:


Поиск по сайту

©2015-2019 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-06-03 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту:

Обратная связь
0.013 с.