Добавить в корзинуПозвонить
Найти в Дзене
Road to the programming

Урок №11. cout, cin и endl

На этом уроке мы рассмотрим такие объекты, как cout, endl и cin, существующие в языке C++.
Объект std::cout
Как мы уже говорили на предыдущих уроках, объект std::cout (который находится в библиотеке iostream ) используется для вывода данных на экран (в консольное окно). В качестве напоминания, вот наша программа «Hello, world!»:
#include <iostream>
Оглавление

На этом уроке мы рассмотрим такие объекты, как cout, endl и cin, существующие в языке C++.

Объект std::cout

Как мы уже говорили на предыдущих уроках, объект std::cout (который находится в библиотеке iostream ) используется для вывода данных на экран (в консольное окно). В качестве напоминания, вот наша программа «Hello, world!»:

#include <iostream>
int main ( )
{
std :: cout << "Hello, world!" ;
return 0 ;
}

Для вывода нескольких предложений на одной строке оператор вывода << нужно использовать несколько раз, например:

#include <iostream>
int main ( )
{
int a = 7 ;
std :: cout << "a is " << a ;
return 0 ;
}

Программа выведет:

a is 7

А какой результат выполнения следующей программы?

#include <iostream>
int main ( )
{
std :: cout << "Hi!" ;
std :: cout << "My name is Anton." ;
return 0 ;
}
Возможно, вы удивитесь, но:
Hi!My name is Anton.

Объект std::endl

Если текст нужно вывести раздельно (на нескольких строках) — используйте std::endl. При использовании с std::cout, std::endl вставляет символ новой строки. Таким образом, мы перемещаемся к началу следующей строки, например:

#include <iostream>
int main ( )
{
std :: cout << "Hi!" << std :: endl ;
std :: cout << "My name is Anton." << std :: endl ;
return 0 ;
}
Результат:
Hi!
My name is Anton.

Объект std::cin

std::cin является противоположностью std::cout. В то время как std::cout выводит данные в консоль с помощью оператора вывода << , std::cin получает данные от пользователя с помощью оператора ввода >> . Используя std::cin мы можем получать и обрабатывать пользовательский ввод:

#include <iostream>
int main ( )
{
std :: cout << "Enter a number: " ; // просим пользователя ввести любое число
int a = 0 ;
std :: cin >> a ; // получаем пользовательское число и сохраняем его в переменную a
std :: cout << "You entered " << a << std :: endl ;
return 0 ;
}

Попробуйте скомпилировать и запустить эту программу. При запуске вы увидите Enter a number: , а затем программа будет ждать, пока вы укажите число. Как только вы это сделаете и нажмете Enter, программа выведет You entered , а затем ваше число.

Например (я ввел 7 ):
Enter a number: 7
You entered 7

Это самый простой способ получения данных от пользователя. Мы будем его использовать в дальнейших примерах.

Если ваше окно закрывается сразу после ввода числа — смотрите Урок №7 (там есть решение данной проблемы).

Если же ввести действительно большое число, то вы получите переполнение, так как переменная а может содержать числа только определенного размера/диапазона. Если число больше/меньше допустимых максимумов/минимумов, то происходит переполнение. Об этом мы детально поговорим на следующих уроках.

std::cin, std::cout, << и >>

Новички часто путают std::cin с std::cout и << с >> . Вот простые способы запомнить их различия:

std::cin и std::cout всегда находятся в левой стороне стейтмента;

std::cout используется для вывода значения (cOUT = вывод);

std::cin используется для получения значения (cIN = ввод);

оператор вывода << используется с std::cout и показывает направление, в котором данные движутся от r-value в консоль. std::cout << 7; (значение 7 перемещается в консоль);

оператор ввода >> используется с std::cin и показывает направление, в котором данные движутся из консоли в переменную. std::cin >> a; (значение из консоли перемещается в переменную a ).