C++

Ввід даних з клавіатури

Оператор cin для зчитування даних з клавіатури. Інтерактивні програми з введенням та виведенням, арифметичні оператори та практичні приклади.

Від виводу до діалогу

До цього моменту наші програми були «монологом» — вони лише виводили заготовлені дані на екран. Але більшість реальних програм — це діалог з користувачем. Калькулятор запитує числа, пошукова система — запит, магазин — кількість товару. Щоб програма стала інтерактивною, їй потрібен механізм введення даних.

Оператор cin

Так само, як cout << виводить дані з програми на екран, оператор cin >> зчитує дані з клавіатури в програму. Зверніть увагу на напрямок стрілок:

Loading diagram...
graph LR
    A["Клавіатура"] -- "cin >>" --> B["Змінна в програмі"]
    B -- "cout <<" --> C["Екран"]

    style A fill:#64748b,stroke:#334155,color:#ffffff
    style B fill:#f59e0b,stroke:#b45309,color:#ffffff
    style C fill:#3b82f6,stroke:#1d4ed8,color:#ffffff
  • cout <<виведення (console output) — стрілки вказують від програми
  • cin >>введення (console input) — стрілки вказують до програми

Синтаксис

cin >> ім'я_змінної;

Наприклад:

int age;
cin >> age;   // Програма зупиняється і чекає, поки користувач введе число

Коли програма зустрічає cin >>, вона зупиняється і чекає, поки користувач введе дані з клавіатури та натисне Enter.

Введення кількох змінних

Можна зчитувати кілька значень одним рядком:

cin >> quantity >> price >> discount;

У цьому випадку користувач вводить три числа, розділені пробілами або натисканням Enter.

Важливо: Змінна, у яку ви вводите дані, повинна бути оголошена заздалегідь. Ви не можете писати cin >> x;, якщо x не був оголошений.

Практичний приклад: Покупка з введенням

У попередньому розділі ми написали програму розрахунку покупки зі знижкою, але ціна та кількість були «зашиті» в код. Тепер зробимо програму інтерактивною — користувач сам введе ці значення.

PurchaseInput.cpp
#include <iostream>

using namespace std;

int main()
{
    // Оголошуємо змінні
    float discount = 0.05;   // Знижка 5% (фіксована)
    float cost;              // Ціна товару (введе користувач)
    int count;               // Кількість (введе користувач)
    float price;             // Підсумкова вартість

    // Запитуємо ціну
    cout << "What's the cost?\n";
    cin >> cost;

    // Запитуємо кількість
    cout << "How much?\n";
    cin >> count;

    // Обчислюємо вартість зі знижкою
    price = count * cost - count * cost * discount;

    // Виводимо результат
    cout << "Please, pay: " << price << "\n";

    return 0;
}

Розберемо нові елементи:

  • Рядок 14: cout виводить запрошення — щоб користувач розумів, що від нього очікують
  • Рядок 15: cin >> cost; — програма зупиняється і чекає введення числа. Коли користувач введе число (наприклад, 10.50) і натисне Enter, значення запишеться в змінну cost
  • Рядок 18–19: Аналогічно — запитуємо кількість

Приклад роботи програми:

What's the cost?
10.50
How much?
5
Please, pay: 49.875
Best practice: Завжди виводьте підказку перед cin >>, щоб користувач розумів, що від нього очікують. Без підказки програма просто «замерзне» — і користувач не зрозуміє, що потрібно ввести число.

Практичний приклад: Програма-обманщик

А тепер напишемо цікаву програму! Це гра: програма та користувач загадують числа. Хто загадає більше — той переможе. Але комп'ютер завжди виграє. Чому?

Game.cpp
#include <iostream>

using namespace std;

int main()
{
    // Запрошення до гри
    cout << "Let's play!\n";

    // Оголошення змінної для числа користувача
    int number;

    // Запит числа
    cout << "Enter a number: ";
    cin >> number;

    // Компʼютер "загадує" число (завжди на 1 більше!)
    cout << "I have " << number + 1 << "\n";

    // Вивід результату
    cout << "I'm winner!\n";

    return 0;
}

Приклад роботи:

Let's play!
Enter a number: 67
I have 68
I'm winner!

Чому комп'ютер завжди виграє?

Розгадка — в рядку 18:

cout << "I have " << number + 1 << "\n";

Тут виводиться не фіксоване число, а вираз number + 1 — значення змінної number, збільшене на 1. Яке б число ви не ввели, комп'ютер виведе число, що на одиницю більше.

Якщо замінити number + 1 на number - 1, то перемогу завжди здобуватиме користувач — число комп'ютера буде на одиницю менше.

Арифметичні оператори

У прикладах вище ми вже використовували деякі математичні операції. Ось основні арифметичні оператори C++:

ОператорДіяПрикладРезультат
+Додавання5 + 38
-Віднімання10 - 46
*Множення7 * 321
/Ділення15 / 43 (ціле ділення!)
%Остача від ділення15 % 43
Увага з діленням! Якщо обидва числа цілі (int), результат теж буде цілим — дробова частина відкидається:
int result = 15 / 4;   // result = 3, а не 3.75!
float result2 = 15.0 / 4;  // result2 = 3.75 (одне з чисел — дійсне)

Використання виразів з cout

В cout можна виводити не тільки змінні, але й вирази (формули):

int a = 10;
int b = 3;

cout << "Sum: " << a + b << "\n";       // Sum: 13
cout << "Product: " << a * b << "\n";    // Product: 30
cout << "Division: " << a / b << "\n";   // Division: 3
cout << "Remainder: " << a % b << "\n";  // Remainder: 1

Комбінування cin та cout

Ось типовий шаблон інтерактивної програми:

#include <iostream>

using namespace std;

int main()
{
    // 1. Оголошення змінних
    int value1, value2;
    int result;

    // 2. Запит вхідних даних
    cout << "Enter first number: ";
    cin >> value1;

    cout << "Enter second number: ";
    cin >> value2;

    // 3. Обчислення
    result = value1 + value2;

    // 4. Вивід результату
    cout << "Sum = " << result << "\n";

    return 0;
}

Цей шаблон — фундамент більшості ваших майбутніх програм: ввід → обробка → вивід.

Loading diagram...
graph TD
    A([Початок]) --> B[/"Зчитати вхідні дані (cin)"/]
    B --> C["Обробити дані (обчислення)"]
    C --> D[/"Вивести результат (cout)"/]
    D --> E([Кінець])

    style A fill:#3b82f6,stroke:#1d4ed8,color:#ffffff
    style B fill:#64748b,stroke:#334155,color:#ffffff
    style C fill:#f59e0b,stroke:#b45309,color:#ffffff
    style D fill:#64748b,stroke:#334155,color:#ffffff
    style E fill:#3b82f6,stroke:#1d4ed8,color:#ffffff

Практичні завдання

Рівень 1 — Базовий

Рівень 2 — Логічний

Рівень 3 — Творчий

Підсумок

📌 cin >>

Оператор введення даних з клавіатури. Програма зупиняється і чекає, поки користувач введе значення та натисне Enter.

📌 Шаблон програми

Більшість програм працюють за схемою: введення (cin) → обробка (обчислення) → виведення (cout).

📌 Арифметика

Основні оператори: +, -, *, /, %. При діленні цілих чисел дробова частина відкидається.
Copyright © 2026