В цьому уроці ми розглянемо такі об’єкти, як cout
, endl
і cin
в C++.
Об’єкт std::cout
Як ми вже говорили в попередніх уроках, об’єкт std::cout
(який знаходиться в бібліотеці iostream) використовується для виведення інформації на екран (в консольне вікно). Наприклад, згадаємо нашу програму «Hello, world!»:
1 2 3 4 5 6 7 |
#include <iostream> int main() { std::cout << "Hello, world!"; return 0; } |
Для виведення декількох об’єктів в одному рядку, оператор виведення <<
потрібно використати декілька разів, наприклад:
1 2 3 4 5 6 7 8 |
#include <iostream> int main() { int a = 7; std::cout << "a is " << a; return 0; } |
Результат виконання програми вище:
a is 7
А який результат виконання наступної програми?
1 2 3 4 5 6 7 8 |
#include <iostream> int main() { std::cout << "Hi!"; std::cout << "My name is Anton."; return 0; } |
Можливо, ви здивуєтесь, але:
Об’єкт std::endl
Якщо текст потрібно вивести окремо (на декількох рядках), то тоді слід використовувати std::endl
. При використанні з std::cout
, std::endl
вставляє символ нового рядка. Таким чином, ми перемістимося до початку наступного рядка, наприклад:
1 2 3 4 5 6 7 8 |
#include <iostream> int main() { std::cout << "Hi!" << std::endl; std::cout << "My name is Anton." << std::endl; return 0; } |
Результат:
Об’єкт std::cin
std::cin
є протилежністю std::cout
. У той час як std::cout
виводить дані в консоль за допомогою оператора виведення <<
, std::cin
отримує дані від користувача програми за допомогою оператора введення >>
. Використовуючи std::cin
ми можемо отримувати і опрацьовувати ввід користувача, наприклад:
1 2 3 4 5 6 7 8 9 10 |
#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
Це найпростіший спосіб отримання даних від користувача. Ми будемо його використовувати в подальших прикладах.
Примітка: Якщо ваше вікно відразу закривається після вводу числа, то дивіться урок №6 (там є рішення вашої проблеми).
Якщо ж ввести дійсно велике число, то ви отримаєте переповнення, так як змінна а
може містити числа тільки певного розміру/діапазону. Якщо число більше/менше допустимих максимумів/мінімумів, то відбувається переповнення. Ми детальніше про це поговоримо в наступних уроках.
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
.