почему? неработает...

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
mdems
Сообщения: 20
Зарегистрирован: 14 авг 2009, 22:48

:( помогите пожалуста почему не читает кнопки с клавиатуры, и не делает никаких движений программа...

Код: Выделить всё

#include <iostream>
using namespace std;
#include <ctype.h>

void main()
{
char letter;
	cout << " Xo4esh IIPogoJI}|{uTb? (Y/N): " << endl;
	do
	{
		letter = cin.get();
		letter = isupper(letter);
	}
	while((letter !='Y') && (letter !='N'));
	cout << endl << "Tu BBeJI" << letter << endl;
} 
Аватара пользователя
rrrFer
Сообщения: 237
Зарегистрирован: 07 сен 2008, 14:15
Контактная информация:

isupper(letter); возвращает 1 если letter содержит код буквы верхнего регистра, иначе 0. если вы вводите любую букву, то к началу проверки
((letter !='Y') && (letter !='N')); letter содержит или 1 или 0.
чтобы перевести символ в верхний регистр используйте int toupper(int ch);
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
cin.get() ждет пока пользователь нажмет <enter>, вместо него можно использовать getche():

Код: Выделить всё

#include <iostream>
#include <conio.h>
using std::cout;
using std::endl;
int main() { 
	char letter; 
    cout << " Xo4esh IIPogoJI}|{uTb? (Y/N): " << endl; 
    do{ 
        letter = getche();
        letter = toupper(letter); 
    } 
    while(letter !='Y' && letter !='N'); 
    cout << endl << "Tu BBeJI" << letter << endl; 
	system("pause");
	return 0;
}
Newbie
Сообщения: 148
Зарегистрирован: 06 сен 2009, 19:45

rrrFer писал(а):isupper(letter); возвращает 1 если letter содержит код буквы верхнего регистра, иначе 0. если вы вводите любую букву, то к началу проверки
((letter !='Y') && (letter !='N')); letter содержит или 1 или 0.
чтобы перевести символ в верхний регистр используйте int toupper(int ch);
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
cin.get() ждет пока пользователь нажмет <enter>, вместо него можно использовать getche():

Код: Выделить всё

#include <iostream>
#include <conio.h>
using std::cout;
using std::endl;
int main() { 
	char letter; 
    cout << " Xo4esh IIPogoJI}|{uTb? (Y/N): " << endl; 
    do{ 
        letter = getche();
        letter = toupper(letter); 
    } 
    while(letter !='Y' && letter !='N'); 
    cout << endl << "Tu BBeJI" << letter << endl; 
	system("pause");
	return 0;
}
обьясните смысл строки:
cout << endl << "Tu BBeJI" << letter << endl;

после цикла?
Аватара пользователя
rrrFer
Сообщения: 237
Зарегистрирован: 07 сен 2008, 14:15
Контактная информация:

Newbie
это не комне вопрос, посмотри на программу в первом посту темы.
Предполагаю, что mdems хочет узнать с помошью какой кнопки пользователь вышел из цикла, то-есть Y или N.
mdems
Сообщения: 20
Зарегистрирован: 14 авг 2009, 22:48

да cout это выводит на экран...) :)
Ответить