Создаём компьютерную игру
eng   рус

Ввод/вывод в С++. Потоки

Предыдущий урок: Типы данных и переменные в C++
Следующий урок: Операторы в C++

Теперь, после того как мы разобрались с переменными, мы готовы к детальному разговору о выводе (output) в C++. Также мы рассмотрим как получать ввод (input) пользователя в консольных приложениях.

Потоки (streams)

В языке С мы использовали функции printf и scanf для ввода/вывода. C++ тоже разрешает использовать их. Но в C++ есть новая абстракция - потоки (streams). Поток - это просто последовательность байтов. Он может перемещать данные в нашу программу (от клавиатуры, из файла, сети, переменной) или из нашей программы (в консоль, файл, сеть).

Потоки не зависят от конкретных устройств, они последовательны и они работают с символами. С клавиатуры мы получаем символы один за одним, в консоли мы печатаем сверху вниз, символ за символом. Что касается файлов, текстовые редакторы позволяют работать в любой части файла, но внутри любой файл это просто последовательность байтов. Пока что нам интересны только текстовые файлы, так что для нас любой файл - это последовательность символов. В C++ мы можем использовать потоки для чтения из файлов и для записи в файлы.

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

Существует четыре стандартных потока: cout, cerr, clog для вывода, и cin для ввода. Чтобы работать с потоками, нужно включить заголовочный файл iostream. Так что для любого консольного приложения, нужно добавить следующую строчку:

#include <iostream>

Давайте напечатаем строки с помощью разных потоков:

cout << "Hey!" << endl; cerr << "How are you?" << endl; clog << "Bye!" << endl;

По умолчанию все эти потоки выводят содержимое в консоль. Поэтому после выполнения данного кода вы увидите в консоли три строки текста. В разных ситуациях можно использовать разные потоки: вывод каких-нибудь вычислений в cout, обработать исключения и вывести сообщения об ошибках в cerr, записать логи в clog.

Для ввода используется поток cin. Он может работать с разными типами данных.

int i; float f; cin >> i; cin >> f;

Операторы вставки (insertion) и извлечения (extraction) в C++

Оператор вставки << используется, чтобы поместить данные в поток. А с помощью оператора извлечения >> мы вытаскиваем данные из потока. Чтобы легко их запомнить, представьте что данные двигаются в направлении стрелочек, а вставка/извлечение относится к потокам.

Перенаправление потоков ввода/вывода в файлы

Мы можем перенаправлять потоки в файлы. Мы можем сделать это прямо в наших программах с помощью кода, но на даннй момент нам не хватает для этого знаний. Существует более простой способ. При запуске программы можно указать какие файлы будут использоваться для перенаправления стандартных потоков ввода/вывода:

a.exe < input_file b.exe > output_file c.exe < in.txt > out.txt

Программа a.exe будет получать ввод из файла input_file, b.exe будет выводить данные в output_file, а программа c.exe будет получать ввод из in.txt и писать в out.txt.

Мы будем испоьзовать эту возможность в следующих уроках.

Вывод

В данном уроке мы рассмотрели потоки ввода/вывода (input/output) в языке C++ и концепцию потоков. В следующих уроках мы научимся работать с потоками файлов.

Комментарии:

20 сентября 2020 г. 13:44
2 Guest
Join the Bitcoin System Learn more: https://bit.ly/3iCggV1 Listen to our members who rely on our software to fund their luxury lifestyle: Chris Hadid I ask my wife to squeeze me every morning when I wake up and check my bank account. I have never seen this amount in my bank account. And it continues to grow and grow ... this is what I've been waiting for all my life. Now that I have felt what it means to be my own boss and make tens of thousands of dollars every week, I will never look back! I have been a member of the Bitcoin system for only 47 days. But my life has already changed! Not only did I make my first $ 100,000, but I also met some of the most incredible people. Thank you Steve! Daniel Pelts Surprisingly, I used to be a Wall Street investor. And I've never seen anything like it in my 10 years at the company. All my colleagues thought I was crazy when I left the company to devote myself entirely to the Bitcoin System software. Now that the profit is 384,594 euros, all my colleagues CAN let them in. Meet Steve McKay The genius of the Bitcoin system. Hello - I am a former software developer for a large firm, which I mention the name as a giveaway I Compared to early investors in Uber, Facebook or Airbnb, this software is creating millionaires in record time. If you want to make a million with Bitcoin, watch the video above to see how. Your friend, Steve McKay Jump to be the first: https://bit.ly/3iCggV1
25 августа 2020 г. 2:25
1 Guest
Kamagra Perime Enhagnax https://asocialiser.com/ - cialis price unimmeri Fever While On Amoxil bofsSoup <a href=https://asocialiser.com/#>how to buy cialis</a> crebmaccum Ibuprofen Amoxicillin