Ввод и вывод
Программа должна не только считать внутри себя, но и общаться с пользователем. Для первых консольных программ достаточно двух потоков: cout выводит данные, cin читает данные.
cout отправляет текст в консоль. cin получает данные из консоли. В учебных примерах выводим английский текст, чтобы избежать проблем с кодировкой.
Вывод одной строки
#include <iostream>
using namespace std;
int main() {
cout << "Start" << endl;
return 0;
}
endl переводит вывод на новую строку. Для простых уроков этого достаточно.
Вывод нескольких значений
#include <iostream>
using namespace std;
int main() {
int speed = 80;
int dist = 25;
cout << "speed = " << speed << endl;
cout << "dist = " << dist << endl;
return 0;
}
Вывод:
speed = 80
dist = 25
Одна команда cout может содержать несколько частей. Они выводятся слева направо.
Вывод на несколько строк
#include <iostream>
using namespace std;
int main() {
cout << "Robot" << endl;
cout << "Mode: test" << endl;
cout << "Status: ok" << endl;
return 0;
}
Можно использовать и \n внутри строки:
#include <iostream>
using namespace std;
int main() {
cout << "Line 1\nLine 2\n";
return 0;
}
Для новичка endl обычно нагляднее, а \n короче.
Ввод одного числа
#include <iostream>
using namespace std;
int main() {
int speed = 0;
cout << "Enter speed: ";
cin >> speed;
cout << "speed = " << speed << endl;
return 0;
}
Сначала переменной задают начальное значение, затем cin записывает новое значение из консоли.
Ввод нескольких чисел
#include <iostream>
using namespace std;
int main() {
int a = 0;
int b = 0;
int sum = 0;
cout << "Enter two numbers: ";
cin >> a >> b;
sum = a + b;
cout << "sum = " << sum << endl;
return 0;
}
Пользователь может ввести числа в одной строке через пробел или в разных строках.
Проверка простого ввода
Если вместо числа ввести текст, cin не сможет записать значение. Пока используем простую проверку:
#include <iostream>
using namespace std;
int main() {
int speed = 0;
cout << "Enter speed: ";
cin >> speed;
if (!cin) {
cout << "Input error" << endl;
return 1;
}
cout << "speed = " << speed << endl;
return 0;
}
Конструкция if подробно изучается позже. Сейчас достаточно понять: если ввод сломан, программа сообщает об ошибке и заканчивает работу.
Практика
- Выведите три строки с описанием робота:
Robot,Mode,Status. - Считайте число
speedи выведите его обратно. - Считайте два числа
aиb, выведите их сумму. - Сравните вывод через несколько
endlи через. - Попробуйте ввести текст вместо числа и посмотрите поведение программы.
Проверьте себя
- Что делает
cout? - Что делает
cin? - Зачем переменной задают значение до ввода?
- Как вывести несколько значений одной командой?
- Чем
endlотличается от обычного текста?
Сначала ответьте без подсказки. Ответ можно считать полным, если вы:
- формулируете основную мысль своими словами;
- называете важные условия, ограничения или меры безопасности;
- для схемы, кода или расчёта показываете ход решения и ожидаемый результат.
Если один из пунктов объяснить не получается, найдите соответствующую главу статьи, перечитайте её и повторите ответ.
Словарь статьи
| Термин | Значение |
|---|---|
| ввод | получение данных программой |
| вывод | показ данных пользователю |
| поток | направление передачи данных |
cout | стандартный вывод |
cin | стандартный ввод |
endl | переход на новую строку |
Связанные темы
- Первая программа — первый вывод.
- Конструкция ветвления — проверка введённых данных.
- Чтение и запись файлов — похожая работа с txt-файлами.
Источники
- Microsoft Learn. iostream programming: https://learn.microsoft.com/en-us/cpp/standard-library/iostream-programming
- C++ reference. Basic input/output: https://en.cppreference.com/w/cpp/io