Для чего нужен cin в c
Перейти к содержимому

Для чего нужен cin в c

  • автор:

Пример Оператор ввода cin в языке Си/C++

cin — ввод данных с консоли. Как только программа встречает данный оператор, она останавливается и ждет реакции пользователя. И, пока пользователь не введет данные и не нажмет «Ввод»(Enter). Только после этого продолжится выполнение.

Синтаксис оператора ввода: cin»имя_переменной;. имя_переменной указывает на переменную, в которую нужно поместить данные, введенные с клавиатуры:Например:

cin>>Age;

Эта команда помещает число, введенное с клавиатуры, в переменную с именем Аge.

Ввод сразу нескольких переменных, записывают таким образом:

cin>>имя_переменной1>>имя_переменной2>>. >>имя_переменнойN;

Список имен переменных должен содержать имена всех переменных, в которые Вы хотите ввести данные с клавиатуры. Список имен может состоять из любого количества имен переменных, разделенных комбинацией символов ».

Как и в С, различные элементы данных при вводе должны быть отделены друг от друга (пробелами, табуляциями или символами новой строки).

Пример ввода строки с пробелами cin.getline

#include #include using namespace std; int main()

Инглекс (Englex) — онлайн школа английского языка.

11 Самых Популярных Статей

  1. ulimit (limits.conf) управление ограничениями ресурсов ОС Linux
  2. 7 способов сравнения файлов по содержимому в Windows или Linux
  3. Что такое страны tier 1,2,3 и как правильно выбрать ГЕО для рекламной кампании
  4. Настройка, использование GitLab CI/CD
  5. Что означает «> /dev/null 2>&1» или перенаправление STDIN, STDOUT и STDERR?
  6. Настройка и использование сервера OpenVPN в Linux
  7. PostgreSQL: создать БД, пользователя, таблицу, установить права
  8. Виды кодировок символов
  9. Использование rsync в примерах
  10. my.cnf примеры конфигурации MySQL, MariaDB
  11. dig проверка DNS сервера

11 Самых Популярных Обзоров

  1. ТОП 4 лучших антидетект браузеров в 2023 (Бесплатные & Платные)
  2. Обзор и отзывы о Namecheap в 2023 году
  3. Хостинг Zomro (Зомро)
  4. Обзор браузера Dolphin
  5. ТОП 3 Проверенных VPN, Прокси, Хостинг VPS Турция в 2023
  6. Что такое абузоустойчивый хостинг (bulletproof)?
  7. Обзор и отзывы о 4VPS (FourServer) в 2023 году
  8. Обзор и отзывы AstroProxy в 2023 году
  9. Обзор и отзывы о PQ Hosting в 2023 году
  10. Обзор и отзывы о Hostinger в 2023 году: преимущества и недостатки
  11. Проверенные VPS / VDS хостинг провайдеры

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' используется сам по себе для перемещения курсора на следующую строку, необходимы одинарные кавычки. При встраивании в текст, который уже заключен в двойные кавычки, одинарные кавычки не нужны.

Мы рассмотрим, что такое '\n' более подробно, когда перейдем к уроку о символах (4.11 – Символы).

Лучшая практика

При выводе текста в консоль лучше использовать '\n' вместо std::endl .

Предупреждение

'\n' использует обратный слеш (как и все специальные символы в C++), а не прямой слеш. Использование прямого слеша (например, '/n' ) может привести к неожиданному поведению.

std::cin

std::cin – еще одна предопределенная переменная, определенная в библиотеке iostream . В то время как std::cout выводит данные в консоль с помощью оператора вставки ( оператора извлечения ( >> ). Для дальнейшего использования входные данные должны быть сохранены в переменной.

#include // для std::cout и std::cin int main() < // запрашиваем у пользователя число std::cout ; // получаем число с клавиатуры и сохраняем его в переменной x std::cin >> x; std::cout

Попробуйте скомпилировать эту программу и запустить ее самостоятельно. Когда вы запустите программу, строка 6 напечатает «Enter a number: ». Когда код дойдет до строки 10, ваша программа будет ждать, пока вы введете данные. После того, как вы введете число (и нажмете клавишу Enter ), введенное вами число будет присвоено переменной x . Наконец, в строке 11 программа напечатает «You entered », а затем число, которое вы только что ввели.

Например (я ввел 4):

Enter a number: 4 You entered 4

Это простой способ получить от пользователя ввод с клавиатуры, и в будущем мы будем использовать его во многих наших примерах. Обратите внимание, что вам не нужно использовать '\n' при принятии входных данных, так как пользователю нужно будет нажать клавишу Enter , чтобы его входные данне были принят, а это переместит курсор на следующую строку.

Если ваш экран закрывается сразу после ввода числа, обратитесь к уроку «0.8 – Несколько основных проблем C++» для решения этой проблем.

Лучшая практика

Существуют споры о том, нужно ли инициализировать переменную непосредственно перед тем, как передать ей значение, предоставленное пользователем, через другой источник (например, std::cin ), поскольку значение, предоставленное пользователем, просто перезапишет значение инициализации. В соответствии с нашей предыдущей рекомендацией о том, что переменные всегда следует инициализировать, лучше всего сначала инициализировать переменную.

Мы обсудим, как std::cin обрабатывает недопустимые входные данные в следующем уроке (7.16 – std::cin и обработка недопустимых входных данных).

Для продвинутых читателей

Библиотека ввода/вывода C++ не позволяет принимать ввод с клавиатуры без нажатия пользователем клавиши Enter . Но если вам это нужно, то вам придется использовать стороннюю библиотеку. Для консольных приложений мы рекомендуем библиотеку pdcurses. Многие графические пользовательские библиотеки имеют для этого свои собственные функции.

Резюме

Программисты-новички часто путают std::cin , std::cout , оператор вставки ( > ). Вот простой способ запомнить:

  • std::cin и std::cout всегда идут в левой части выражения;
  • std::cout используется для вывода значения (cout = character output);
  • std::cin используется для получения входного значения (cin = character input);
  • >> используется с std::cin и показывает направление движения данных (если std::cin представляет клавиатуру, входные данные перемещаются с клавиатуры в переменную). std::cin >> x перемещает значение, введенное пользователем с клавиатуры, в x .

Подробнее об операторах мы поговорим в уроке «1.9 – Знакомство с литералами и операторами».

Небольшой тест

Вопрос 1

Рассмотрим следующую программу, которую мы использовали выше:

#include // для std::cout и std::cin int main() < // запрашиваем у пользователя число std::cout ; // получаем число с клавиатуры и сохраняем его в переменной x std::cin >> x; std::cout

Программа ожидает, что вы введете целочисленное значение, поскольку переменная x , в которую будет помещен пользовательские входные данные, является целочисленной переменной.

Запустите эту программу несколько раз и опишите, что произойдет, если вместо этого вы введете следующие типы входных данных:

а) Буква, например, h .

б) Число с дробной частью. Попробуйте числа с дробными составляющими меньше 0,5 и больше 0,5 (например, 3,2 и 3,7).

Дробная составляющая опущена.

в) Небольшое отрицательное целое число, например -3.

Всё прекрасно работает.

г) Слово, например «Hello».

д) Действительно большое число (минимум 3 миллиарда).

Вы получаете, казалось бы, случайное число.

Последнее предложение может быть особенно неожиданным. Попробуйте! Это происходит потому, что x может содержать числа только до определенного размера. После этого он «переполняется». Мы обсудим переполнение в следующем уроке.

Теги

Сохранить или поделиться

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.

В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.

Присоединяйтесь к нам во ВКонтакте!

  • Антенны и распространение радиоволн
  • Беспроводная связь
  • Высокочастотная техника
  • Волоконно-оптические линии связи (ВОЛС)
  • Измерительная техника
  • Исполнительные механизмы и драйверы
  • САПР
  • Спутниковая связь
  • Схемотехника
  • Телевидение
  • Цифровая электроника
  • Технологии и инструменты
  • Электронные компоненты
  • А что внутри?
  • Прочее (радиоэлектроника)
  • Алгоритмы и структуры данных
  • Базы данных
  • Веб-разработка
  • Мультимедиа (разработка ПО)
  • Нейронные сети
  • Паттерны проектирования
  • Связь
  • Системы сборки ПО
  • Языки программирования
  • Компьютерные сети
  • Операционные системы
  • Верстка
  • Системы контроля версий
  • История технологий
  • Мультимедиа
  • Новости телекома
  • Нормативная документация
  • Охрана труда
  • Полезные программы
  • Просто интересно
  • Экономика телекоммуникаций и электронной промышленности
  • Экономика и инвестиции

Мы в соцсетях

Поточный ввод-вывод в C++

Поточный ввод-вывод в 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 >> идентификатор;

При этом из входного потока читается последовательность символов до пробела, затем эта последовательность преобразуется к типу идентификатора, и получаемое значение помещается в идентификатор:

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(указатель, количество) Ожидает ввода строки символов. Максимальное количество символов ограничено полем количество

Пример Программа ввода-вывода значения переменной в 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" , &n);
printf( "Значение n равно: %d\n" , 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

cout

Результат выполнения

Еще один пример использования форматированного вывода: для 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 уровень вниз

Здравствуйте! Вы можете мне помочь решить эту задачу и дать ссылку на подробный материал на эту тему, и как можно больше примеров. Используя функции, управляющие форматом вывода данных, напишите программу, которая будет выводить строку ". 123". Вот, почта для связи yusubfaridrahim@yandex.ru

Елена Вставская
printf( "……….123" );
Чем не устраивает?

Можно ли привести нормальный пример ввода чисел с клавиатуры в изначально пустой vector (не указывая его первоначального размера)? Пересмотрел много примеров в интернете, сам пользуюсь Problem solving with C++ W.Savitch, ничего толкового не нашел.Только примеры с предварительным запросом кол-ва желаемого ввести. Спасибо заранее

Для чего нужен cin в c

Поточный ввод-вывод в C++ : функции cin, cout, cerr

Ввод-вывод данных в языке программирования С++. Как и в большинстве C-подобных языках, в С++ отсутствуют встроенные средства ввода-вывода данных. Именно для этой цели в С++ существует библиотека iostream, для ее подключения используется строка #include .

Определяется три стандартных потока:

cout (выходной поток)
cin (входной поток)
cerr (поток вывода сообщений об ошибках)

Далее мы имеем всего две операции поразрядного сдвига:

Вывод данных.

Для того чтобы вывести нужную вам информацию, сначало пишется выходной поток cout , после чего поразрядная операция для помещения в поток , после чего обязательно пишется ;

Конечная запись имеет вид :int a;cout

Есть возможность многократного назначения потоков, и запись с использованием этой возможности будет выглядеть так:

Ввод данных имеет следующий вид: сначало идет входной поток cin , после чего поразрядная операция >> и само значение.Конечная запись выглядит так:

Так же есть возможность многократного назначения , выглядит так:

Хочу заметить , что потоковый ввод cin вводит строчку до пробела, перевода стоки или символа табуляции.Пример выглядит следующим образом:

В таком случае результат выполнения выглядит так:

Манипулятор getline() нужен для ввода текста до символа перевода строки. Пример:

Манипуляторы потока

oct Установка основания с 8-ой системой счисления
dec Установка основания с 8-ой системой счисления
hex Установка основания с 8-ой системой счисления
oct Установка основания с 8-ой системой счисления
get() Ожидание программой ввода символа
width Указывает ширину поля
scientific вывод числа в экспоненциальной форме
endl Помещение символа конца строки «\n»
setbase Выводится система счисления по умолчанию
fill(‘указываем символ’) Пустые знакоместа заполняются указываемым символом
showpos Для положительных чисел отображается знак +
getline(указатель кол-во) Макс. кол-во символов ограничено значением кол-во которые вы указали , ожидает ввода строки.

Наглядный пример не большой программы ввода-вывода значения переменной:

Далее давайте рассмотрим пример форматированного вывода информации.

Сейчас мы рассмотрели ввод-вывод данных в C++.

Добавить комментарий Отменить ответ

Рубрики

  • C++ (27)
    • STL (2)
    • Арифметические операции (1)
    • Ввод-вывод (1)
    • Дополнительная информация (1)
    • Задачи (2)
    • Массивы (1)
    • Сортировки (2)
    • Типы данных (1)
    • Условные операторы (1)
    • Циклы (1)
    • Задачи читателей (6)
    • Одномерные массивы (2)
    • Простые операции (10)
    • Символьные строки (1)
    • Сортировка (3)
    • Типы данных (1)
    • Условные операторы (3)
    • Циклы (5)
    • Поисковая оптимизация для интернет-магазинов (25)

    Создание и продвижение интернет-магазинов. Предприниматель и автор книг Артур Мазитов. ООО "ГКТ" ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ "ГРУППА КОМПАНИЙ "ТЕКСТ" ООО "ГКТ" ИНН 0275927174, ОГРН 1220200002582 Юридический адрес 450076, Республика Башкортостан, г.о. Город Уфа, г Уфа, ул Коммунистическая, д. 16, кв. 41 |
    2014 © Copyright Все права защищены

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *