Читайте также:
|
|
Ввод символов до некоторого ограничителя
//(в данном случае х)
int main(){
char ch;
cout << "Input char (end - x)\n ";
do {
cout << ":"; //приглашение к вводу
cin >> ch; //ввод символа завершаем нажатием <enter>
} while (ch!= 'x');
cout << " <x> -- end " << endl;
_getch();
return 0;
}
getchar() – ждет ввода символа и нажатия <enter> //функции С
getche() – вводит символ c эхо и не ждет <enter>
getch(), _getch() – ждет ввода символа и нажатия <enter>
while ( (ch=getche() )!=’\r’) //пока не нажата клавиша <enter>
{ if ch==’ ‘ …..
else ……}
Определение первого символа вводимого значения
Функция (метод) peek() объекта cin класса istream возвращает из потока очередной символ (оставляя его в потоке), или EOF, если достигнут конец файла;
//1
char c[10], c2;
cout << "Type 'abcde': ";
//abcde, набранные на клавиатуре, попадают в буфер ввода;
//принимающий объект cinкласса istream с помощью своего методаpeek() извлекает
// из буфера ввода очередной (первый, в данном случае) символ, т.е. а (оставляя его там)
c2 = cin.peek(); //определяет первый вводимый символ
cin.getline(&c[0], 9); //с помощью метода getline() в символьный массив с
//вводится строка abcde
cout << c2 << " " << c << endl; //вывод символа a и строки abcde
//2
double f;
char c2;
cout << "Type 123.456: ";
c2 = cin.peek();
cin >> f;
cout << c2 << " " << f << endl; //1 123.456
//3
char c, c2;
cout << "Type simvol a: ";
c2 = cin.peek(); //определяет вводимый символ
cin >> c;
cout << c2 << " " << c << endl; //a a
Контроль правильности ввода значения переменной
При вводе значения любого из целочисленных типов, превосходящего максимально допустимое значение для диапазона типа соответствующей переменной, фактически вводится неверное значение. Чтобы обнаружить ошибку, необходимо контролировать вводимые данные.
Контроль правильности ввода значения некоторого типа можно реализовать, например, таким образом:
//проверка ввода значения из диапазона значений типа unsigned char
unsigned int uchar; //более широкий тип unsigned int
do {
cout << "input unsigned char:" << endl;
cin >> uchar;
} while(uchar < 0 || uchar > UCHAR_MAX); //диапазон значений типа unsigned char
//проверка ввода значения из диапазона значений типа int
float f; //более широкий тип float
int i;
do {
cout << "input int:" << endl;
cin >> f;
} while(f < INT_MIN || f > INT_MAX);
i=f;
cout <<"ok " << i << endl;
Если компилируем как C++:
#define _USE_MATH_DEFINES
#include <cmath>
Если компилируем как C:
#define _USE_MATH_DEFINES
#include <math.h>
Дата добавления: 2015-07-08; просмотров: 165 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Адрес переменной | | | Основные встроенные (стандартные) функции |