Страница 1 из 1
почему? неработает...
Добавлено: 22 сен 2009, 15:26
mdems

помогите пожалуста почему не читает кнопки с клавиатуры, и не делает никаких движений программа...
Код: Выделить всё
#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;
}
Re: почему? неработает...
Добавлено: 22 сен 2009, 16:40
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;
}
Re: почему? неработает...
Добавлено: 22 сен 2009, 17:17
Newbie
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;
после цикла?
Re: почему? неработает...
Добавлено: 22 сен 2009, 17:25
rrrFer
Newbie
это не комне вопрос, посмотри на программу в первом посту темы.
Предполагаю, что mdems хочет узнать с помошью какой кнопки пользователь вышел из цикла, то-есть Y или N.
Re: почему? неработает...
Добавлено: 23 сен 2009, 09:26
mdems
да cout это выводит на экран...)
