Hoppa till innehåll

Rekommendera inlägg

Skrivet (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 av Barejalla
Skrivet (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 av Vitdom
Skrivet (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 av Barejalla
Skrivet (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 av Vitdom
Skrivet (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 av Barejalla

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.

Gäst
Svara på det här ämnet...

×   Klistrade in som rich text.   Klistra in som vanlig text istället

  Endast 75 emojis är tillåtet.

×   Din länk har automatiskt inbäddats.   Visa som en länk istället

×   Ditt tidigare innehåll har återställts.   Rensa redigeraren

×   Du kan inte klistra in bilder direkt. Ladda upp eller infoga bilder från URL.

×
  • Skapa ny...