Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР5-С++-22 марта-2012.doc
Скачиваний:
12
Добавлен:
15.09.2019
Размер:
1.48 Mб
Скачать

1.11.10. Второе знакомство с cin

Точно так же как выходной поток cout позволяет вашим программам записать вывод на экран, входной поток cin позволяет программам читать ввод с клавиатуры. Когда программы используют cin для чтения ввода с клавиатуры, они должны указать переменную, в которую cin поместит данные. Следующая программа LR5-26.cpp в примере 5.26 использует cin для чтения числа, введенного с клавиатуры. Программа присваивает введенное число переменной с именем number, а затем выводит значение переменной, используя выходной поток cout.

Пример 5.26.

/*Программа LR5-Primer26*/

#include <iostream.h>

#include<conio.h>

int main()

{

int number; // Число, читаемое с клавиатуры

cout << "Введите ваше любимое число и нажмите Enter: ";

cin >> number;

cout << "Ваше любимое число равно " << number << endl;

getch();

return 0;

}

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

Тестирование:

Одновременно (через пробел) можно вводить несколько значе­ний для различных переменных. Ввод заканчивается нажатием кла­виши Enter. Если введенных значений больше, чем ожидается в программе, часть вводимых данных останется во входном буфере.

Следующая программа LR5-27.cpp в примере 5.27 запрашивает у вас два числа. Программа присваивает числа переменным first и second. Затем программа выводит числа, используя cout.

Пример 5.27.

/*Программа LR5-Primer27*/

#include <iostream.h>

#include<conio.h>

int main()

{

int first, second; // Числа, введенные с клавиатуры

cout << "Введите два числа и нажмите Enter: ";

cin >> first >> second;

cout << "Были введены числа " << first << " и " << second << endl;

getch();

return 0;

}

Тестирование:

Обратите внимание на использование с cin двух операторов извлечения:

cin >> first >> second;

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

cin >> first >> second >> third;

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

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

Если ваши программы выполняют ввод с использованием cin, остерегайтесь возможных ошибок, возникающих при вводе пользователем неверного числа. Например, запустите программу LR5-26.cpp, которую вы только что создали. Когда программа запросит вас ввести ваше любимое число, введите число 1000000 и нажмите ENTER. При этом программа не сможет отобразить число 1000000 в качестве введенного значения. Вместо этого возникнет ошибка переполнения, так как 1000000 превышает наибольшее значение, которое может хранить тип int.

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