сout ввод вывода C++

Requirements
Header: <iostream>
Namespace: std

С помощью функции cout« можно выводить на экран различные текстовые строки. Строки можно оформлять при помощи Escape-последовательностей.

В заголовке программы должна присутствовать строка

#include <iostream> 

Перед использованием команды необходимо подключить пространство имен, к которому принадлежит команда cout.

using namespace std;

Строку, которую мы хотим вывести на экран используя cout«, мы обязательно записываем в кавычки. Например:

cout<<"здесь пишем то, что хотим";

Показ значения переменной на экран осуществляется с помощью cout«

cout<<имя_переменной; // кавычки в данном случае не указываются

Можно показывать содержимое нескольких переменных через

cout<<имя_переменной1<<имя_переменной2; // кавычки в данном случае не указываются

Можно чередовать показ содержимого переменных с текстовыми сообщениями и Escape-последовательностями через

cout<<"Текст"<<имя_переменной1<<"Текст"<<имя_переменной2<<"\n"; 

Показ содержимого констант осуществляется по полной аналогии с переменными.

Форматирование ввода-вывода средствами языка С++

В предыдущей теме урока мы рассмотрели, как можно использовать функцию printf() для форматирования текста, а можно сделать то же самое при помощи средств форматирования ввода/вывода языка С++. Мы рассмотрим целых два способа.

  • Способ первый

Данный способ предусматривает использование функций для установки определенных флагов форматирования, которые перечислены в классе ios_base

enum {  
skipws=0x0001,
left=0x0002,
right=0x0004,
internal=0x0008,
dec=0x0010,
oct=0x0020,
hex=0x0040,
showbase=0x0080,
showpoint=0x0100,
uppercase=0x0200,
showpos=0x0400,
scientific=0x0800,
fixed=0x1000,
unitbuf=0x2000,
stdio=0x4000        
};

Рассмотрим назначение каждого из флагов.

Кроме флагов, существует так же набор, которые устанавливают и сбрасывают эти флаги.

long setf(long flags); - используется для установки флагов и принимает в качестве параметра рассмотренные выше флаг или флаги, соединенные между собой при помощи побитового ИЛИ. Она возвращает предыдущее значение флага. Рассмотрим пример:

cout.setf(ios::hex);
cout.setf(ios::showpos);
cout<<123<<" "<<123.45<<"\n";	
cout<<67<<" "<<678.9<<"\n";
выведет на экран
	7b +123.45
	43 +678.9	
точно такого же эффекта мы добьемся после выполнения следующего кода
cout.setf(ios::hex | ios::showpos);
cout<<123<<" "<<123.45<<"\n";	
cout<<67<<" "<<678.9<<"\n";

long unsetf(long flags); - функция возвращает значение предыдущей установки флага и сбрасывает флаги, определяемые параметром flags. Пример: cout.setf(ios::showpos | ios::hex); cout«123«" "«123.45«"\n"; cout.unsetf(ios::showpos | ios::hex); cout«123«" "«123.45«"\n"; выведет на экран

7b +123.45
123 123.45

Кроме флага форматирования также можно установить ширину поля потока, символ для заполнения и число цифр после десятичной запятой. Для этого используются следующие функции:

int width(int len); - устанавливает ширину поля и возвращает текущую ширину. Данная функция воздействует только на один вывод информации.

char fill(char ch); - устанавливает текущий символ заполнения и возвращает предыдущий символ заполнения. По умолчанию используется пробел

int precision(int num); - устанавливает точность чисел с плавающей точкой. Эта функция определяет количество цифр после десятичной запятой или обозначает количество выводимых цифр. Точность, установленная по умолчанию, равна 6.

cout.width(10);
cout.fill('*');
cout<<123<<"\n";
cout.width(10);
cout<<456<<"\n\n";	
cout<<"Using precision\n";
float price1 = 20.405f;
float price2 = (float)1.9+8.0/9.0;
cout<<price1<<"\n"<<price2<<"\n\n";
cout.precision(2);
cout<<price1<<"\n"<<price2<<"\n\n";
cout.setf(ios::scientific);
cout<<price1<<"\n"<<price2<<"\n\n";

выведет на экран

  • 123 *456
Using precision
20.405
2.78889
20
2.8
2.04e+001
2.79e+000
  • Второй способ. Использование манипуляторов.

Манипуляторы - специальные функции, которые позволяют изменять флаги потока. Существуют манипуляторы с параметрами и без. Если Вы используете манипуляторы с параметрами, нужно подключить файл iomanip.h.

Манипуляторы без параметров:

Манипуляторы с параметрами:

Пример использования:

cout<<setw(5)<<setfill('*')<<22<<endl;
cout<<hex<<11<<endl;
Результат работы:
	***22
	b
PQ VPS сервера в 28+ странах.