Tooprogram.ru

Компьютерный справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Cin в си что это

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

В С++, как и в С, нет встроенных в язык средств ввода-вывода.

В С для этих целей используется библиотека stdio.h .
В С++ разработана новая библиотека ввода-вывода iostream , использующая концепцию объектно-ориентированного программирования:

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

  • cin стандартный входной поток ( stdin в С)
  • cout стандартный выходной поток ( stdout в С)
  • cerr стандартный поток вывода сообщений об ошибках ( stderr в С)

Для их использования в Microsoft Visual Studio необходимо прописать строку:

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

  • >> получить из входного потока
  • cout

Возможно многократное назначение потоков:
cout

Ввод информации

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

Возможно многократное назначение потоков:
cin >> переменная1 >> переменная2 >>. >> переменнаяn;

При наборе данных на клавиатуре значения для такого оператора должны быть разделены символами (пробел, n, t ).

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

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

Для ввода текста до символа перевода строки используется манипулятор потока getline() :

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

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

Функцию — манипулятор потока можно включать в операции помещения в поток и извлечения из потока ( >).

В С++ имеется ряд манипуляторов. Рассмотрим основные:

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

Пример Программа ввода-вывода значения переменной в C++

Та же программа, написанная на языке Си

Пример Использование форматированного вывода

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

Еще один пример использования форматированного вывода: для t∈[0;3] с шагом 0,5 вычислить значение y=cos(t).

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

Урок 2 — Операторы ввода вывода: cin, cout в языке Си

Cin — это объект входного потока пространства имен std:

В данном коде программы используется оператор cin , операция взятия из потока >> чтобы получить от пользователя введенное им значение. Объект std::cin забирает вводимую пользователем информацию из стандартного потока ввода, который обычно является клавиатура. Функция Cin достаточно интелектуальна, чтобы понять, какая информация введена с клавиатуры. Ведь мы можем ввести целое число, а также можем ввести дробное, сивмольное или текст.

Cout — это объект выходного потока пространства имен std:: . Это необъявленный идентификатор. Его не нужно объявлять. Его нужно только подключать к программе при помощи слова include: #include

std::cout «Выходной поток» ;

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

Напишим программу, которая объявляет две переменных целочисленного числа. В них вы вводим с клавиатуры 2 числа и выводим полученный результат.

int x,y; //объявляем переменный целого типа
std::cout //На экран выводится ‘X = ‘
std::cin>>x; //вводим с клавиатуры число, например: 5
std::cout //На экран выводится ‘Y = ‘
std::cin>>y; //вводим с клавиатуры число, например: 8

std::cout
//На экран монитора выводится сообщение ‘x + y = 13’

_getch(); //Экран не закрывается, пока не нажата любая клавиша
>

Заголовочный файл включает объекты cin, cout, которые нам нужны. Если #include убрать, то при компиляции выйдет ошибка. #include необходимо для того, чтобы мы видели результат на экране, благодаря функции _getch() . Если ее не будет, то программа выполнится и закроется. И мы не успеем увидеть результат работы программы. Если откомпилировать код, написанный выше, то результат будет следующий:

Итак, мы видим, что в std::cout выводится ‘x + y = ‘. После этого вычисляется результат суммы и сразу же выводится результат. Мы могли сделать по-другому:

int x,y; //объявляем переменный целого типа
int sum; //Переменная для вычисления суммы
std::cout //На экран выводится ‘X = ‘
std::cin>>x; //вводим с клавиатуры число, например: 5
std::cout //На экран выводится ‘Y = ‘
std::cin>>y; //вводим с клавиатуры число, например: 8
sum = x + y ;

std::cout
//На экран монитора выводится сообщение ‘x + y = 13’

_getch(); //Экран не закрывается, пока не нажата любая клавиша
>

Результат работы программы будет аналогичный. std::endl — это оператор конца строки.

Давайте это же сделаем и для дробных чисел:

float x,y; //объявляем переменный дробного типа
float sum; //Переменная дробного типа для вычисления суммы

std::cout //На экран выводится ‘X = ‘
std::cin>>x; //вводим с клавиатуры число, например: 2.25
std::cout //На экран выводится ‘Y = ‘
std::cin>>y; //вводим с клавиатуры число, например: 4.89
sum = x + y; //Вычисление суммы
std::cout
//На экран монитора выводится сообщение ‘x + y = 7.14’

_getch(); //Экран не закрывается, пока не нажата любая клавиша
>

Результат работы программы:

Итак, мы видим, что функция cin и функция cout интелектуально способные различить дробные и целые числа.

Дополнительные возможности cin и cout в C++

ЧТО ВНУТРИ iostream.h

Каждая написанная вами на C++ программа включала заголовочный файл iostream.h. Этот файл содержит определения, позволяющие вашим программам использовать cout для выполнения вывода и cin для выполнения ввода. Более точно, этот файл определяет классы istream и ostream (входной поток и выходной поток), a cin и соut являются переменными (объектами) этих классов. Выберите время, чтобы напечатать файл iostream.h. Он находится в подкаталоге INCLUDE. Определения в этом файле достаточно сложны. Однако если вы пройдете по файлу медленно, то обнаружите, что большинство определений являются просто определениями классов и констант. Внутри файла вы найдете объявления переменных cin и cout.

ИСПОЛЬЗОВАНИЕ cout

Как вы уже знаете, cout представляет собой класс, который содержит несколько разных методов. Следующие программы иллюстрируют использование некоторых методов, которые ваши программы могут применять для форматирования вывода. Из урока 3 вы узнали, что манипулятор setw позволяет вашим программам указать минимальное количество символов, которое может занять следующее выходное значение:

<
int i;
for (i = 3; i С:> COUTWIDT

Мое любимое число1001

Мое любимое число 1001

Мое любимое число 1001

Мое любимое число 1001

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

Использование символа-заполнителя

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

Таблица информации
Профиль компании. 10
Доходы и убытки компании. 11
Члены правления компании. 13

В данном случае вывод предваряет номера страниц точками. Функция cout.fill позволяет вам указать символ, который cout будет использовать для заполнения пустого пространства. Следующая программа COUTFILL.CPP создает таблицу, подобную приведенной выше:

<
float value = 1.23456;
int i;
for (i = 1; i С:>SETPREC

Если вы используете манипулятор setprecision для изменения точности, ваша установка действует до тех пор, пока программа повторно не использует setprecision.

ВЫВОД И ВВОД ОДНОГО СИМВОЛА ЗА ОДИН РАЗ

В зависимости от назначения вашей программы вам, возможно, потребуется выводить символы на дисплей или читать с клавиатуры по одному символу за один раз. Для вывода одного символа за один раз ваши программы могут использовать функцию cout.put. Следующая программа COUTPUT.CPP использует эту функцию для вывода на экран сообщения Учимся программировать на языке C++! по одному символу за раз:

<
char string[] = «Учимся программировать на языке C++!»;
int i;
for (i = 0; string[i]; i++) cout.put(string[i]) ;
>

Библиотека этапа выполнения предоставляет функцию с именем toupper, которая возвращает заглавный эквивалент строчной буквы. Следующая программа COUTUPPR.CPP использует функцию toupper для преобразования символа в верхний регистр, а затем выводит эту букву с помощью cout.put.

#include // прототип toupper

<
char string[] = «C++ language»;
int i;
for (i = 0; string[i]; i++) cout.put(toupper(string[i]));
cout С:> COUTUPPR

Результирующая строка: C++ language

* К сожалению, функция toupper применима только к английским буквам. Прим. перев.

ЧТЕНИЕ ВВОДА С КЛАВИАТУРЫ ПО ОДНОМУ СИМВОЛУ ЗА РАЗ

Точно так же, как cout предоставляет функцию cout.put для вывода символа, cin предоставляет функцию cin.get, которая позволяет вам читать один символ данных. Чтобы воспользоваться функцией cin.get, вы просто присваиваете переменной возвращаемый этой функцией символ, как показано ниже:

Следующая программа CIN_GET.CPP выводит сообщение, в ответ на которое вам необходимо ввести Y или N. Затем она повторяет в цикле вызов cin.get для чтения символов, пока не получит Y или N:

<
char string[128];
cout

<
char string[128];
cout ICQ-консультанты Skype-консультантыОбщая справкаКак оформить заказТарифы доставкиСпособы оплатыПрайс-листКарта сайта

Популярные статьи
Информационная безопасность Антивирусное ПО и защита от спама Eset Software Лаборатория Касперского


Бестселлеры
Курсы обучения «Atlassian JIRA — система управления проектами и задачами на предприятии»
Microsoft Office 365 для Дома 32-bit/x64. 5 ПК/Mac + 5 Планшетов + 5 Телефонов. Подписка на 1 год. Электронный ключ
Microsoft Windows 10 Профессиональная 32-bit/64-bit. Все языки. Электронный ключ
Microsoft Office для Дома и Учебы 2019. Все языки. Электронный ключ
Курс «Oracle. Программирование на SQL и PL/SQL»
Курс «Основы TOGAF® 9»
Microsoft Windows Professional 10 Sngl OLP 1 License No Level Legalization GetGenuine wCOA (FQC-09481)
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год. Электронный ключ
Windows Server 2016 Standard
Курс «Нотация BPMN 2.0. Ее использование для моделирования бизнес-процессов и их регламентации»
Антивирус ESET NOD32 Antivirus Business Edition
Corel CorelDRAW Home & Student Suite X8

О нас
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.

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

Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе.

Ввод в языке C++ через cin

Использование объекта cin

Для считывания данных со стандартного ввода используется объект cin , также определенных в заголовочном файле iostream . Его использование похоже на использование объекта cout для вывода. Например, для считывания двух переменных a и b нужно дать команду:

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

Особенности считывания символов

Пусть дано время в формате HH:MM. Считать его можно следующим образом:

int h, m;
char c;
cin >> h >> c >> m;

То есть сначала считывается число, затем — символ, затем — число.

При этом при считывании символа пропускаются пробельные символы (пробелы и концы строк) и считывается следующий непробельный символ. Например, если при запуске приведенного выше кода ввести «12 34», то переменная h станет равна 12, переменная с — ‘3’, а переменная m — 4.

Если установить манипулятор noskipws :

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

Особенности считывания строк

Считывание строк при помощи cin >> s , где s — объект класса string или C-строка приведет к считыванию строки из непробельных символов, при этом пробельные символы пропускаются.Использовать манипулятор noskipws при чтении строк не следует.

Строку целиком до конца строки, вместе с пробельными символами можно считать следующим образом:

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

Правильное решение будет таким:

int n;
string s, A[100];
cin >> n;
getline(cin, s);
for (int i = 0; i getline после считывания числа n. Дело в том, что cin >> n не считывает конец строки из потока, поэтому последующий вызов getline вернет пустую строку (но зато считает конец строки), поэтому нужно сделать один «холостой» вызов getline перед считыванием всех остальных строк.

Значение, возвращаемое при считывании

Для проверки успешности считывания можно преобразовать значение, возвращаемое операцией считывания к типу bool . Например, следующим образом:

bool is_correct;
int a;
is_correct = (cin >> a);

Если значение переменной is_correct будет true , то считывание было успешно, иначе — нет.

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

int h, m;
char c;
if (cin >> noskipws >> h >> c >> m)
<
if (c == ‘:’) .
>

Похожее использование — чтение текста «по словам», с обработкой каждого слова:

string word;
while (cin >> word)
<
// Обработать слово в переменной word
>

Или считывание текста по строкам:

string line;
while (getline(cin, s))
<
// Обработать строку в переменной line
>

Читать еще:  Флаг zf ассемблер
Ссылка на основную публикацию
Adblock
detector