Поточный ввод-вывод в C++ выполняется с помощью функций сторонних библиотек. В С++, как и в С, нет встроенных в язык средств ввода-вывода.
В С для этих целей используется библиотека stdio.h .
В С++ разработана новая библиотека ввода-вывода iostream , использующая концепцию объектно-ориентированного программирования:
Библиотека iostream определяет три стандартных потока:
- cin стандартный входной поток ( stdin в С)
- cout стандартный выходной поток ( stdout в С)
- cerr стандартный поток вывода сообщений об ошибках ( stderr в С)
Для их использования в Microsoft Visual Studio необходимо прописать строку:
using namespace std;
Для выполнения операций ввода-вывода переопределены две операции поразрядного сдвига:
Вывод информации
Здесь значение преобразуется в последовательность символов и выводится в выходной поток:
int n;
char j;
cin >> n >> j;
cout
Ввод информации
cin >> идентификатор;
Ввод данных в программу. Команда ввода cin. Уроки программирования на С++ для начинающих.
При этом из входного потока читается последовательность символов до пробела, затем эта последовательность преобразуется к типу идентификатора, и получаемое значение помещается в идентификатор:
int n;
cin >> n;
Возможно многократное назначение потоков:
cin >> переменная1 >> переменная2 >>. >> переменнаяn;
При наборе данных на клавиатуре значения для такого оператора должны быть разделены символами (пробел, n, t ).
int n;
char j;
cin >> n >> j;
Особого внимания заслуживает ввод символьных строк. По умолчанию потоковый ввод cin вводит строку до пробела, символа табуляции или перевода строки.
1
2
3
4
5
6
7
8
9
10
#include
using namespace std;
int main()
char s[80];
cin >> s;
cout system( «pause» );
return 0;
>
Результат выполнения
Для ввода текста до символа перевода строки используется манипулятор потока getline() :
1
2
3
4
5
6
7
8
9
10
Результат выполнения
Манипуляторы потока
Функцию — манипулятор потока можно включать в операции помещения в поток и извлечения из потока (>).
В С++ имеется ряд манипуляторов. Рассмотрим основные:
Манипулятор | Описание |
endl | Помещение в выходной поток символа конца строки ‘n’ |
dec | Установка основания 10-ой системы счисления |
oct | Установка основания 8-ой системы счисления |
hex | Установка основания 16-ой системы счисления |
setbase | Вывод базовой системы счисления |
width(ширина) | Устанавливает ширину поля вывода |
fill(‘символ’) | Заполняет пустые знакоместа значением символа |
precision(точность) | Устанавливает количество значащих цифр в числе (или после запятой) в зависимости от использования fixed |
fixed | Показывает, что установленная точность относится к количеству знаков после запятой |
showpos | Показывает знак + для положительных чисел |
scientific | Выводит число в экспоненциальной форме |
get() | Ожидает ввода символа |
getline(указатель, количество) | Ожидает ввода строки символов. Максимальное количество символов ограничено полем количество |
Ввод данных. Cin. Пример. Синтаксис. C++ для начинающих. Урок #7.
Пример Программа ввода-вывода значения переменной в C++
1
2
3
4
5
6
7
8
9
10
11
Та же программа, написанная на языке Си
1
2
3
4
5
6
7
8
9
10
#include
int main()
int n;
printf( «Введите n:» );
scanf( «%d» ,
printf( «Значение n равно: %dn» , n);
getchar(); getchar();
return 0;
>
Пример Использование форматированного вывода
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Результат выполнения
Еще один пример использования форматированного вывода: для t∈[0;3] с шагом 0,5 вычислить значение y=cos(t).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Результат выполнения
Комментариев к записи: 23
поточный то есть символьный ?
Статья для русскоязычной аудитории. При попытке вывести текст новички столкнуться с тем, что выводится абра-кадабра и компилятор необходимо «обучить» русскому языку.А после «обучения», будет анти проблема — программа не будет понимать что ей вводят через cin.
Елена Вставская
Решение проблемы с русским языком описано здесь: https://prog-cpp.ru/vs-console/
int main()
setlocal(LC_ALL, «Russian» );
>
и никаких проблем с CIN, COUT и вообще, это ключевые слова.
Только при setlocale(LC_ALL, «Russian»); ввод cin будет так же иероглифами. Можете использовать этот вариант в функции main() SetConsoleCP(1251); SetConsoleOutputCP(1251);
Если в cout записать некое математическое выражение (например cout
Елена Вставская
Ввести строку, выделить в ней числа и знаки, вычислить и вывести
а если имеются скобки?
Елена Вставская
Тогда и скобки выделить) Порядок выполнения операций можно отслеживать с помощью бинарного дерева. Каждая открывающая скобка опускает вычисления на 1 уровень вниз
Елена Вставская
printf( «……….123» );
Чем не устраивает?
Можно ли привести нормальный пример ввода чисел с клавиатуры в изначально пустой vector (не указывая его первоначального размера)? Пересмотрел много примеров в интернете, сам пользуюсь Problem solving with C++ W.Savitch, ничего толкового не нашел.Только примеры с предварительным запросом кол-ва желаемого ввести. Спасибо заранее
Источник: prog-cpp.ru
1.5 – Знакомство с iostream: cout, cin и endl
В этом уроке мы подробнее поговорим о std::cout , который мы использовали в нашей программе «Hello world!» для вывода в консоль текста «Hello world!». А также узнаем, как получить данные от пользователя, которые мы будем использовать, чтобы сделать наши программы более интерактивными.
Библиотека ввода/вывода
Библиотека ввода/вывода (библиотека io) является частью стандартной библиотеки C++, которая имеет дело с базовым вводом и выводом. Мы будем использовать функции этой библиотеки для получения ввода с клавиатуры и вывода данных в консоль. Буквы io в iostream означают «input/output» (ввод/вывод).
Чтобы использовать функции, определенные в библиотеке iostream , нам нужно включить заголовочный файл iostream в начало любого исходного файла, который использует содержимое, определенное в iostream , например:
#include // остальной код использует функциональность iostream
std::cout
Библиотека iostream содержит несколько предопределенных переменных, которые мы можем использовать. Одной из наиболее полезных является std::cout , которая позволяет нам отправлять данные в консоль для печати в виде текста. cout означает «character output» (вывод символов).
Вспомним нашу программу Hello world :
#include // для std::cout int main() < std::cout
В эту программу мы включили iostream , чтобы у нас был доступ к std::cout . Внутри нашей функции main() мы используем std::cout вместе с оператором вставки ( для отправки текста « Hello world! » в консоль для печати.
std::cout может печатать не только текст, но и числа:
#include // для std::cout int main() < std::cout
Это дает результат:
Его также можно использовать для вывода значений переменных:
#include // для std::cout int main() < int x; // определяем целочисленную переменную x, инициализированную значением 5 std::cout
Это дает результат:
Чтобы напечатать несколько элементов в одной строке, для объединения (связывания) нескольких частей выводимых данных, оператор вставки (
#include // для std::cout int main()
Эта программа печатает:
Hello world!
Вот еще один пример, в котором мы печатаем и текст, и значение переменной в одном выражении:
#include // для std::cout int main() < int x; std::cout
Эта программа печатает:
x is equal to: 5
std::endl
Как вы думаете, что напечатает следующая программа?
#include // для std::cout int main()
Результат может вас удивить:
Hi!My name is Alex.
Отдельные выражения вывода не приводят к отдельным выводимым строкам в консоли.
Если мы хотим выводить в консоль отдельные выводимые строки, нам нужно указать консоли, когда необходимо переместить курсор на следующую строку.
Один из способов сделать это – использовать std::endl . При выводе с помощью std::cout , std::endl выводит в консоль символ новой строки (заставляя курсор переместиться в начало следующей строки). В этом контексте endl означает «end line» (конец строки).
#include // для std::cout и std::endl int main() < std::cout
Hi! My name is Alex.
Совет
В приведенной выше программе второй std::endl технически не нужен, так как программа сразу же после этого завершается. Однако он служит двум полезным целям: во-первых, он помогает указать, что строка вывода является «законченной мыслью». Во-вторых, если мы позже захотим добавить дополнительные выражения вывода, нам не нужно будет изменять существующий код. Мы можем просто добавить новые выражения.
std::endl против ‘n’
Использование std::endl может быть немного неэффективным, поскольку фактически выполняет две задачи: перемещает курсор на следующую строку и «очищает» вывод (обеспечивает немедленное отображение на экране). При записи текста в консоль с использованием std::cout , std::cout обычно всё равно очищает вывод (а если нет, это обычно не имеет значения), поэтому наличие очистки от std::endl редко бывает важным.
Из-за этого обычно предпочтительнее использовать символ ‘n’ . Символ ‘n’ перемещает курсор на следующую строку, но не выполняет избыточную очистку, поэтому он работает лучше. Символ ‘n’ также легче читать, поскольку он короче и может быть встроен в существующий текст.
Вот пример, в котором ‘n’ используется двумя разными способами:
#include // для std::cout int main() < int x; // Использование ‘n’ в одиночном режиме std::cout
Этот код напечатает:
x is equal to: 5 And that’s all, folks!
Обратите внимание, что когда ‘n’ используется сам по себе для перемещения курсора на следующую строку, необходимы одинарные кавычки. При встраивании в текст, который уже заключен в двойные кавычки, одинарные кавычки не нужны.
Объект cin в C++
Объект cin в C++ – это объект класса istream. Он используется для приема ввода со стандартного устройства ввода, т.е. клавиатуры. Он связан со стандартным входным потоком C stdin.
Декларация cin в С++
extern istream cin;
Он определен в заголовочном файле .
Гарантируется, что объект cin будет инициализирован во время или перед первым построением объекта типа ios_base :: Init. После создания объекта cin cin.tie() возвращает cout, что означает, что любая операция форматированного ввода в cin принудительно вызывает cout.flush(), если какие-либо символы ожидают вывода.
«C» в cin означает «символ», а «in» означает «ввод», следовательно, cin означает «ввод символов».
Объект cin используется вместе с оператором извлечения (>>) для получения потока символов. Общий синтаксис:
cin >> varName;
Оператор извлечения может использоваться более одного раза, чтобы принимать несколько входных данных как:
cin >> var1 >> var2 >> … >> varN;
Объект cin также можно использовать с другими функциями-членами, такими как getline(), read() и т. Д. Некоторые из наиболее часто используемых функций-членов:
- cin.get (char ch): читает введенный символ и сохраняет его в ch.
- cin.getline (char * buffer, int length): считывает поток символов в строковый буфер, останавливается, когда
- он прочитал символы длиной 1 или
- когда он находит символ конца строки (‘ n’) или конец файла.
- он прочитал символы длиной 1 или
- когда он находит символ конца строки (‘ n’) или конец файла.
Отдаем динамический архив картинок клиенту (.net, c#)
Пример 1: cin с оператором извлечения:
#include using namespace std; int main() < int x, y, z; /* For single input */ cout > x; /* For multiple inputs*/ cout > y >> z; cout Enter a number: 9 Enter 2 numbers: 1 5 Sum = 15
Пример 2: cin с функцией-членом:
#include using namespace std; int main() < char name[20], address[20]; cout Name: Sherlock Holmes Address: Baker Street, UK You entered Name = Sherlock Holmes Address = Baker Street, UK
- Преобразование восьмеричного числа в десятичное и наоборот в C++
- Преобразование двоичного числа в восьмеричное и наоборот в C++
- Как перевернуть строку в C++
Источник: calmsen.ru