Aloittelen C++:saa ja minulla on miltei 1000-sivuinen C++-opas, eikä tahdo siitä löytyä edes yksinkertaista vastinetta Basicin LOCATE-käskylle. Eli siis millä funktiolla saan asetettua tekstikursorin tietylle riville ja sarakkeelle?
Katso kääntäjän helpistä, missä kirjastossa on määritelty gotoxy(rivi, sarake).
Yleensä conio.h
Jos ohjelmasi toimii konsolissa, niin kirjoituskohdan muuttaminen ei varmaan ole kannattavaa. Nimittäin konsoli on tarkoitettu vain tekstin syöttöön ja tulostukseen, ja edellisten rivien kuuluu olla näkyvissä.
Joo conio.h:sta löytyi ja jo toimii gotoxy.
lainaus:
Jos ohjelmasi toimii konsolissa, niin kirjoituskohdan muuttaminen ei varmaan ole kannattavaa. Nimittäin konsoli on tarkoitettu vain tekstin syöttöön ja tulostukseen, ja edellisten rivien kuuluu olla näkyvissä.
Tarkoituksena on tehdä tekstipohjainen matopeli ja näin ollen pitää määrillä kohta, johon madon pää pistetään. En oikein ymmärrä miksei kannaisi muuttaa kirjoituskohtaa, olenhan vasta aloittelija, mutta en nyt tähän muutakaan ratkaisua keskinyt.
No niin, heti löytyi uusi ongelma. :)
Nyt pitäisi saada vastine Basicin INPUT$(1)-Funktiolle. Eli pitäisi odottaa näppäimen painallusta, ja sitten tallentaa painettu näppäin muuttujaan. Ja jatkaa suoritusta heti painalluksen jälkeen, ettei tarvitsisi painaa mitään Enteriä, niin kuin tavallisessa INPUT:ssa.
Koska löytyi gotoxy, niin taatusti löytyy myös getch ja kbhit.
getch() palauttaa painetun näppäimen jos sellaista on puskurissa ja jos eiole, niin odottaa painallusta.
kbhit() tarkistaa, onko puskurissa näppäimiä.
Eli laita seuraava silmukkaan, niin se lukee näppäimiä vain jos niitä on painettu:
key = 0;
if(kbhit())key = getch();
Aihe on jo aika vanha, joten et voi enää vastata siihen.