Barejalla Skrivet 25 September 2008 Rapport Skrivet 25 September 2008 (redigerat) Hej, jag har gjort ett litet program där jag har testat massa saker. Men kan någon förklara vissa saker till mig, som t.ex, när programmet frågar om man vill gå tillbaks till menyn så typ spammar programmet enter knappen. Gärna några tips också. : ) Den är inte klar, så jag vet att massa saker saknas. Finns att ladda ner HÄR #include<iostream> #include<ctime> using namespace std; int main(void) { char cDoagain; int iGumballs; int iUserguess; int iGuesses = 0; int val; int igen; string inp, pass="kl12ja"; string svar, ratt="M\x84laren"; system("CLS"); cin.clear(); cout << "F\x94r att kunna anv\x84nda det h\x84r programmet m\x86ste du veta l\x94senordet." << endl; cout << "F\x94r att f\x86 reda p\x86 l\x94senordet m\x86ste du svara p\x86 den h\x84r fr\x86gan."<< endl << endl; cout << "Vad heter Sveriges st\x94rsta sj\x94?"<< endl << endl; getline(cin,svar); if(( svar==ratt)){ cout << "R\x84tt!!" << endl << endl; cout << "Losenordet \x84r: kl12ja " << endl << endl << endl; cout << "Skriv l\x94senordet h\x84r: " << endl; getline(cin,inp); if(( inp==pass)){ beggining: system("CLS"); cout << "Vad vill du g\x94ra?" << endl << endl; cout << "1. Spela gissnings spelet" << endl; cout << "2. St\x84ng av" << endl; cin >> val; switch (val){ case 1:{ system("color C"); system("CLS"); cin.clear(); srand(static_cast<unsigned int>(time(0))); iGumballs = rand()%1+1; cout << "Vilken siffra t\x84nker jag p\x86 ? " << endl; do { cout << "Skriv h\x84r: "; cin >> iUserguess; if(iUserguess > iGumballs) { cout << "Mindre!" << endl << endl; } if(iUserguess < iGumballs) { cout << "Storre!" << endl << endl; } iGuesses ++; }while(iUserguess > iGumballs || iUserguess < iGumballs); cout << "Du svarade r\x84tt!"<< endl << endl; cout << "Det tog dig " << iGuesses << " f\x94rsok att svara r\x84tt!" << endl << endl; cout << "Vill du ga tillbaks till menyn?(J eller N)" << endl; cin >> igen; if (igen, "J"){ goto beggining; } else { system("pause"); } } } } else{cout <<"FEL!"<<endl; goto beggining; } case2:{ system("pause"); } } } Redigerat 25 September 2008 av Barejalla Citera
Vitdom Skrivet 26 September 2008 Rapport Skrivet 26 September 2008 (redigerat) Efter din "goto beggining;" sats när man kommer till menyn får cin ett nyradstecken, och på grund av detta så sätts failbit flaggan. Du måste då använda "cin.clear();" för att återställa alla flaggor och jag rekommenderar även att du implementerar felsökning för inmatning. Och jag säger samma sak igen som jag sa till dig förut: Men koden skulle se bättre ut om du försökte hålla en standard på hur du skriver koden. Redigerat 26 September 2008 av Vitdom Citera
Barejalla Skrivet 26 September 2008 Författare Rapport Skrivet 26 September 2008 (redigerat) ok, tack för hjälpen :) oh, btw, vet du hur man gör för att typ kunna göra så att programmet pausar ca 3 sekunder, t.ex; "fel lösen ord, går tillbaks till menyn"(väntar 3 sek tills den går tillbaks till menyn) mvh Redigerat 26 September 2008 av Barejalla Citera
Vitdom Skrivet 26 September 2008 Rapport Skrivet 26 September 2008 (redigerat) Använder du windows.h: använd Sleep(DWORD milliseconds); Använder du unistd.h: använd usleep(useconds_t microseconds); eller sleep(unsigned seconds); Redigerat 26 September 2008 av Vitdom Citera
Barejalla Skrivet 26 September 2008 Författare Rapport Skrivet 26 September 2008 (redigerat) hajade inte riktigt >.< jag skriver ju allt i console application bara. men när jag skrev sleep(2); if ( !strcmp(inn,"BAJSMOS")){ system("CLS"); cout << "L\x94senordet \x84r: "<< endl; for (int i = 0; i < passLen; i++) { cout << (char) (rand() % ('z' - '0' + 1) + '0'); } så fick jag error"38 D:\Mix2.cpp `sleep' undeclared (first use this function) " EDIT: man skulle bara skriva #include "windows.h". Redigerat 26 September 2008 av Barejalla Citera
Rekommendera inlägg
Gå med i konversationen
Du kan skriva nu och registrera dig senare. Om du har ett konto, logga in nu för att posta med ditt konto.