Mam problem z zadaniem, pewnie banalne ale nie moge znalesc dokladnej odpowiedzi Mam rozpoznac rodzaj wpisanego znaku i uzywam do tego kodow ascii, dziala dla malych duzych liter, jednak mam problem ze strzalkami, wyczytalem ze najpierw daja kod 224 a potem dopiero swoj kod ale nie działa halp;p
@Grigorian: wywala w sensie że interpretuje jakby nie było ujemnych. wartości ujemne to te z najwyższym bitem zapalonym, char ma 8 bitów, więc wszystko powyżej 2^7-1 == 127 było interpretowane jako ujemne. Dla typów unsigned najwyższy bit jest częścią dodatniej. Fizycznie to są te same bity w zmiennej, tylko różnie interpretowane. w tym ifie znak był automatycznie konwertowany na int, z unsigned 224 robiło się -32. Potem porównywał to -32 z
Nareszcie złożylem blaszaka, pierwszego od ponad 15 lat. 3 godziny z życia, ale wyszło i nawet działa. Dużo przyjemniej się to robi bez hdd i napędów. #pcmasterrace #komputery #pc
#include
#include
using namespace std;
int main()
{
char znak;
znak=getch();
if ((znak > 47) && (znak < 58)) cout << "Jest to cyfra." << endl;
if ((znak > 96) && (znak < 123)) cout << "Jest to mala litera." << endl;
if ((znak > 64) && (znak < 91)) cout << "Jest to duza litera." << endl;
if ((znak == 13)) cout<< "Wcisnales Enter";
if ((znak == 27)) cout<< "Wcisnales ESC";
if (znak=224)
{
if ((znak == 77)) cout<< "prawo";
}
return 0;
}
#programowanie
Po tym ifie daj drugi getch.
znak=0;
znak=getch();
if ((znak == 77)) cout<< "prawo";
@Grigorian: przypisujesz wartość zmiennej czy sprawdzasz ?
if ((znak == 224))
if (znak==224){
znak=getch() ;
if (znak==77) { //prawo
}
}
char znak;
znak=getch();
if ((znak > 47) && (znak < 58)) cout << "Jest to cyfra." << endl;
if ((znak > 96) && (znak < 123)) cout << "Jest to mala litera." << endl;
if ((znak > 64) && (znak < 91)) cout << "Jest to duza litera." << endl;
if ((znak == 13)) cout<< "Wcisnales Enter";
if
ogólne rozwiąznanie: wypisz odebrany znak jako liczbę żeby dowiedzieć się co jest wysyłane
cout << (unsigned int)znak
tak nie można, 224 nie mieści się w char. zmień char znak na unsigned char znak
niestandardowy nagłówek, lepiej tego nie używać
Fizycznie to są te same bity w zmiennej, tylko różnie interpretowane.
w tym ifie znak był automatycznie konwertowany na int, z unsigned 224 robiło się -32. Potem porównywał to -32 z