Wejście w Allegro

?odzianin

Wejście w Allegro

Post autor: ?odzianin »

Mam problem z projektem w Allegro (w dev c++). Jak można wprowadzać dane w takim projekcie? Próbowałem już umieścić polecenia cout i cin przed inicjalizacją trybu Allegro, ale program zachowuje się, jakby tych poleceń tam nie było, mimo wprowadzenia biblioteki iostream. Co mam zrobić?
spajder
Użytkownik
Użytkownik
Posty: 735
Rejestracja: 7 lis 2005, o 23:56
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 2 razy
Pomógł: 133 razy

Wejście w Allegro

Post autor: spajder »

a tworzysz projekt konsolowy?
Jak nie to musisz utworzyć najpierw normalne okienko windowsa do wprowadzenia danych
?odzianin

Wejście w Allegro

Post autor: ?odzianin »

W jaki sposób? A jeśli chcę żeby dane były wprowadzane w trybie Allegro?
MGT
Użytkownik
Użytkownik
Posty: 107
Rejestracja: 7 lis 2006, o 12:03
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Pomógł: 20 razy

Wejście w Allegro

Post autor: MGT »

Użyj np. z biblioteki allegro.

Ogólnie polecam tego manuala, tam w zasadzie wszystko jest.
?odzianin

Wejście w Allegro

Post autor: ?odzianin »

Nawet niezły pomysł, ale czy mogę zrobić zrobić coś, żebym nie musiał za każdym razem robić ifa dla wpisanego 1,2,3...?
MGT
Użytkownik
Użytkownik
Posty: 107
Rejestracja: 7 lis 2006, o 12:03
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Pomógł: 20 razy

Wejście w Allegro

Post autor: MGT »

Możesz napisać dowolną funkcję wczytującą, opartą na readkey.

Np, jak chcesz czytać cały napis, to możesz zrobić coś w stylu:

Kod: Zaznacz cały

int i=0;
while((znak = readkey()) != enter) wynik[i++] = znak;
Możesz też oczywiście dodać obsługę backspace (ostatni znak podmieniać zerem, cofać iterator) i inne cuda, wedle uznania.
?odzianin

Wejście w Allegro

Post autor: ?odzianin »

A jak zamienić kod ascii na np. wpisaną cyfrę?
MGT
Użytkownik
Użytkownik
Posty: 107
Rejestracja: 7 lis 2006, o 12:03
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Pomógł: 20 razy

Wejście w Allegro

Post autor: MGT »

To:

Kod: Zaznacz cały

val = readkey();
if ((val & 0xff) == '0') {}
jest równoważne:

Kod: Zaznacz cały

if ((val & 0xff) == 48) {}
co więcej:

Kod: Zaznacz cały

char =>  int
'0'  =>	48
'1'  =>	49
'2'  =>	50
...
tak samo, jak:

Kod: Zaznacz cały

char x = 48;
x++;
printf("%c -> %d",x,x); /* out: 1 -> 49 */
Mam nadzieję, że pomogło, pozdrawiam.
ODPOWIEDZ