Tässä muutama kysymys
1a.Mikä on helpoin tapa kysyä käyttäjältä jokin asia?
2.Onko C++ mitään vastaavaa komentoa kuin quickbasicissa shell, joka toimisi dossissa myös?
yritin katsella näitä harjoituksista, mutta en löytänyt, joten ajattelin kysyä täältä ohjelmointiputkasta, kun täältä on yleensä saanut vastauksia eikä ole heti huudelta RTFM!!! Kyselen lisää, kun tulee mieleen jotain :)
Edit:
3a.Mitenkäs system("pause") käytettiinkään?
3b.Mitenkäs saa tehtyä tauon ohjelmaan, joka odottaisi tietyn ajan (quickbasicista ainakin löytyy sleep komento)
1a. Käytä std::cin-oliota (iostream-otsikko). Tuossa ainakin joku rumahko esimerkki: https://www.ohjelmointiputka.net/keskustelu/2567-mikä-vikana
2. Kyllae, std::system-funktio (cstdlib-otsikko)
3a.
system("pause");
Ko. funktio siis ajaa järjestelmän "pause" ohjelman, täten odottaen näppäimen painallusta.
3b. Tähän ei taida löytyä standardinmukaista ratkaisua, mutta esmes Windowsissa voit käyttää Sleep-APIa.
edit: sooditagit eri riveille
muakin kiinnostaisi että saako dos ohjelmassa venattua tietyn verran. eikö siinä ole mitään qb:n TIMERille vastaista functiota tms?
Ne on tosiaan kuten mainittua kääntäjäkohtaisia juttuja. Jos "DOS-ohjelmalla" tarkoitat Windows konsoli ohjelmaa niin toki tuo Sleep siinäkin toimii. Pistä vaan #include "windows.h" ja Sleep(1000); (ottaa parametrin millisekunteina).
Mutta tietääkö joku miten saa jonkun järjestelmätimerin selville ihan "console applicationissa"?
Mä olen vähän sekaisin noista harjoituksista, kun jokaisella sivulla tuntuu olevan noi harjoitukset ihan erilaisia niin kuinka mä siis teen vastaavan ohjelman C++ jos quickbasic koodi olisi tälläinen?
alku: print "1.Pelaaman" print "2.Lue tarina" print "3.Exit" input "anna numero: ", numero$ select case numero$ case is = "1" goto pelaamaan case is = "2" goto lue case is = "3" end case else print "Nyt tyyppi typetti väärän numeron!" end select lue: open "tarina.txt" for input as #1 do line input #1, tarina$ print tarina$ loop until eof(1) close #1 sleep goto alku pelaamaan:
Oho... tuli käytettyä gotoa taas kerran, mutta se tulee jostain selkäytimestä eikä sitä edes huomaa, mutta siis kuinka tehdään C++ suurinpiirtein vastaava koodi?
Älä käytä gotoa!!!!!
Mutta jos sen välttämättä goton kanssa haluaa tehdä, niin C/C++:lla se menisi jotenkin näin.
#include <stdio.h> #include <conio.h> int main(void) { char numero; FILE *tiedosto1; char tarina[256]; alku: printf("1.Pelaamaan\n"); printf("2.Lue tarina\n"); printf("3.Exit\n"); printf("anna numero: \n"); numero=getch(); switch (numero) { case '1': goto pelaamaan; break; case '2': goto lue; break; case '3': return 0; break; default: printf("Nyt tyyppi typetti väärän numeron!\n"); return 0; break; } lue: tiedosto1=fopen("tarina.txt", "r"); if (!tiedosto1) { printf("Tiedostoa ei löytynyt.\n"); return 1; } while (fgets(tarina, 256, tiedosto1)) { printf(tarina); } fclose(tiedosto1); sleep(1000); goto alku; pelaamaan: return 0; }
Aihe on jo aika vanha, joten et voi enää vastata siihen.