Ввод данных c: Ввод-вывод (printf, scanf), использование библиотеки stdio.h

Содержание

Уроки по С++, Урок 6. Чтение ввода с клавиатуры

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

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

Как вы уже знаете, если ваши программы используют выходной поток cout, они помещают данные в поток с помощью оператора вставки (<<). Подобным образом, если ваши программы применяют cin для чтения ввода с клавиатуры, они будут использовать оператор извлечения (>>).

ПЕРВОЕ ЗНАКОМСТВО С cin

Точно так же как выходной поток cout позволяет вашим программам записать вывод на экран, входной поток cin позволяет программам читать ввод с клавиатуры. Когда программы используют cin для чтения ввода с клавиатуры, они должны указать переменную, в которую cin поместит данные. Следующая программа FIRSTCIN.CPP использует cin для чтения числа, введенного с клавиатуры.

Программа присваивает введенное число переменной с именем number, а затем выводит значение переменной, используя выходной поток cout:

#include <iostream.h>

void main(void)

{
   int number; II Число, читаемое с клавиатуры
   cout << «Введите ваше любимое число и нажмите Enter: «;
   cin >> number;
   cout << «Ваше любимое число равно » << number << endl;
}

Когда вы откомпилируете и запустите эту программу, на вашем экране появится сообщение, предлагающее вам ввести ваше любимое число. Если вы введете число и нажмете ENTER, программа присвоит ввод переменной number.

Затем, используя cout, программа выведет сообщение, отображающее ваше любимое число.

Следующая программа TWONBRS.CPP запрашивает у вас два числа. Программа присваивает числа переменным first и second. Затем программа выводит числа, используя cout:

#include <iostream.h>

void main(void)

{
   int first, second; // Числа, введенные с клавиатуры
   cout << «Введите два числа и нажмите Enter: «;
   cin >> first >> second;
   cout << «Были введены числа » << first << » и » << second << endl;
}

Обратите внимание на использование с

cin двух операторов извлечения:

cin >> first >> second;

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

cin >> first >> second >> third;

Если вы применяете cin для чтения чисел с клавиатуры, cin использует левый пустой символ (пробел, табуляцию, возврат каретки), чтобы определить, где начинается одно значение, а где второе. Экспериментируйте с программой TWONBRS, разделяя числа табуляцией, пробелом и возвратом каретки.

Чтение ввода с клавиатуры с помощью cin

Для чтения ввода с клавиатуры программы могут использовать входной поток cin. При использовании cin вы должны указать переменную, в которую cin помещает данные. Затем используйте оператор извлечения (>>) для направления данных, как показано ниже:

cin >> some_variable;

Оператор извлечения называется так, потому что он извлекает (удаляет) данные из входного потока, присваивая значение указанной переменной.

Следите за ошибками переполнения

Если ваши программы выполняют ввод с использованием cin, остерегайтесь возможных ошибок, возникающих при вводе пользователем неверного числа. Например, запустите программу FIRSTCIN, которую вы только что создали.

Когда программа запросит вас ввести ваше любимое число, введите число 1000000 и нажмите ENTER. При этом программа не сможет отобразить число 1000000 в качестве введенного значения. Вместо этого возникнет ошибка переполнения, так как 1000000 превышает наибольшее значение, которое может хранить тип int.

Если вы внимательно рассмотрите программу FIRSTCIN. CPP, то обратите внимание, что cin присваивает введенное число переменной типа int. Как вы узнали из урока 4, переменные типа int могут хранить значения только в диапазоне от -32768 до 32767. Поскольку переменная типа int не может вместить значение 1000000, возникает ошибка. Запустите программу еще несколько раз, вводя отрицательные и положительные числа. Обратите внимание на ошибки, которые возникают, если вы выходите за допустимые пределы значений для той переменной, в которую

cin помещает ввод.

Следите за ошибками несовпадения типов

Как уже обсуждалось, программа FIRSTCIN. CPP предполагает, что пользователь вводит значение в диапазоне от -32768 до 32767. Если вместо ввода числа вне этого диапазона, пользователь вводит буквы или другие символы, то возникает другая ошибка — ошибка несовпадения типов. Другими словами, программа ожидала значение одного типа (int), а пользователь ввел значение другого типа (char). Для примера запустите программу второй раз. Когда программа запросит число, введите буквы АВС. Как и раньше, возникнет ошибка, поскольку программа ожидает целое число, а не буквы.

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

Чтение символьных данных

Обе предыдущие программы использовали cin для чтения целых чисел в переменные типа int. Следующая программа CIN_CHAR.CPP использует входной поток cin для чтения символов с клавиатуры. Как видите, программа читает символ в переменную типа

char.

#include <iostream.h>

void main(void)

{
   char letter;
   cout << «Введите любой символ и нажмите Enter: «;
   cin >> letter;
   cout << «Был введен символ » << letter << endl;
}

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

Чтение слов с клавиатуры

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

float или long. Например, следующая программа CIN_LONG.CPP использует cin для чтения значения типа long:

#include <iostream.h>

void main(void)

{
   long value;
   cout << «Введите большое число и нажмите Enter: «;
   cin >> value;
   cout << «Было введено число » << value << endl;
}

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

Перенаправление В/В и входной поток cin

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

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

ЧТО ВАМ НЕОБХОДИМО ЗНАТЬ

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

cin присваивает вводимые значения. В уроке 7 вы научитесь использовать оператор C++ if, чтобы позволить программам принимать собственные решения. Однако перед тем, как приступить к уроку 7, убедитесь, что вы освоили следующие основные концепции:

    1. C++ предоставляет входной поток cin, который ваши программы могут использовать для чтения ввода с клавиатуры.
    2. Если программы для чтения ввода используют cin, они должны указать одну или несколько переменных, в которые cin будет помещать данные.
    3. Чтобы направить ввод в переменную, вам следует использовать cin с оператором извлечения (>>).
    4. При применении cin для чтения нескольких значений,
      cin
      использует пустые символы (пробел, табуляция или возврат каретки), чтобы определить, где заканчивается одно значение и начинается другое.
    5. Если пользователь вводит неверные данные, могут возникать ошибки переполнения или несоответствия типов, а значения, присвоенные входным потоком cin переменным вашей программы, будут неверны.
Предыдущий урок | Следующий урок

Защита ввода данных с аппаратной клавиатуры

Защита ввода данных с аппаратной клавиатуры Пожалуйста, включите Javascript в браузере!

Защита ввода данных с аппаратной клавиатуры

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

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

  • Защита ввода данных с аппаратной клавиатуры работает только в браузерах Microsoft Internet Explorer, Mozilla Firefox и Google Chrome (в версиях Google Chrome 69.x и выше Защита ввода данных с аппаратной клавиатуры недоступна). При работе с другими браузерами данные, вводимые с аппаратной клавиатуры, не защищаются от перехвата.
  • Защита ввода данных недоступна в браузере Microsoft Internet Explorer из Магазина Windows.
  • Защита ввода данных с аппаратной клавиатуры не может защитить ваши персональные данные в случае взлома сайта, требующего ввода таких данных, поскольку в этом случае информация попадет непосредственно в руки злоумышленников.

В списке выше перечислены основные ограничения, которые имеет функциональность защиты ввода данных. Полный перечень ограничений приводится в статье на сайте Службы технической поддержки «Лаборатории Касперского».

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

Чтобы настроить защиту ввода данных с клавиатуры, выполните следующие действия:

  1. Откройте главное окно программы.
  2. Нажмите на кнопку в нижней части окна программы.

    Откроется окно Настройка.

  3. В разделе Дополнительно выберите подраздел Экранная клавиатура.

    В окне отобразятся параметры Экранной клавиатуры.

  4. В нижней части окна в блоке Защита ввода данных с аппаратной клавиатуры установите флажок Защищать ввод данных с аппаратной клавиатуры.
  5. Откройте окно Параметры Экранной клавиатуры по ссылке Изменить категории в нижней части блока Защита ввода данных с аппаратной клавиатуры.
  6. Установите флажки для категорий сайтов, на которых нужно защищать данные, вводимые с клавиатуры.
  7. Если вы хотите включить или выключить защиту ввода данных с клавиатуры на определенном сайте, выполните следующие действия:
    1. Откройте окно Исключения для защиты ввода с аппаратной клавиатуры по ссылке Настройка исключений.
    2. В открывшемся окне нажмите на кнопку Добавить.
    3. Откроется окно для добавления исключения для аппаратной клавиатуры.
    4. В открывшемся окне введите адрес сайта в поле Маска веб-адреса.
    5. Выберите один из вариантов защиты ввода данных на этом сайте: Применить к указанной странице или Применить ко всему сайту.
    6. Выберите действие защиты ввода данных на этом сайте: Защищать или Не защищать.
    7. Нажмите на кнопку Добавить.

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

В начало

Ввод данных, игра «Южное Бутово»— Ruby Rush

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

План урока

  1. Команда gets, получение данных от пользователя через консоль
  2. Как с использованием переменных, оператора if и команды gets написать простенькую текстовую игру-квест «Прогулка в Южном Бутово»