Gå til innhold

Feil i kortstokk-koden min [LØST]


Anbefalte innlegg

#include <iostream>

using namespace std;


int main(void){
   //Kortstokken
    int kort = 52;
    string kortstokk[kort];
    
    //Valgt kort
    string valgtkort;
    
    //Blir brukt i loop
    int i;

    //Hjerter
    kortstokk[1] = "Hjerter Ess";
    kortstokk[2] = "Hjerter 2";
    kortstokk[3] = "Hjerter 3";
    kortstokk[4] = "Hjerter 4";
    kortstokk[5] = "Hjerter 5";
    kortstokk[6] = "Hjerter 6";
    kortstokk[7] = "Hjerter 7";
    kortstokk[8] = "Hjerter 8";
    kortstokk[9] = "Hjerter 9";
    kortstokk[10] = "Hjerter 10";
    kortstokk[11] = "Hjerter Knekt";
    kortstokk[12] = "Hjerter Dronning";
    kortstokk[13] = "Hjerter Konge";
    
    //Spar
    kortstokk[14] = "Spar Ess";
    kortstokk[15] = "Spar 2";
    kortstokk[16] = "Spar 3";
    kortstokk[17] = "Spar 4";
    kortstokk[18] = "Spar 5";
    kortstokk[19] = "Spar 6";
    kortstokk[20] = "Spar 7";
    kortstokk[21] = "Spar 8";
    kortstokk[22] = "Spar 9";
    kortstokk[23] = "Spar 10";
    kortstokk[24] = "Spar Knekt";
    kortstokk[25] = "Spar Dronning";
    kortstokk[26] = "Spar Konge";
    
    //Ruter
    kortstokk[27] = "Ruter Ess";
    kortstokk[28] = "Ruter 2";
    kortstokk[29] = "Ruter 3";
    kortstokk[30] = "Ruter 4";
    kortstokk[31] = "Ruter 5";
    kortstokk[32] = "Ruter 6";
    kortstokk[33] = "Ruter 7";
    kortstokk[34] = "Ruter 8";
    kortstokk[35] = "Ruter 9";
    kortstokk[36] = "Ruter 10";
    kortstokk[37] = "Ruter Knekt";
    kortstokk[38] = "Ruter Dronning";
    kortstokk[39] = "Ruter Konge";
    
    //Kløver
    kortstokk[40] = "Kløver Ess";
    kortstokk[41] = "Kløver 2";
    kortstokk[42] = "Kløver 3";
    kortstokk[43] = "Kløver 4";
    kortstokk[44] = "Kløver 5";
    kortstokk[45] = "Kløver 6";
    kortstokk[46] = "Kløver 7";
    kortstokk[47] = "Kløver 8";
    kortstokk[48] = "Kløver 9";
    kortstokk[49] = "Kløver 10";
    kortstokk[50] = "Kløver Knekt";
    kortstokk[51] = "Kløver Dronning";
    kortstokk[52] = "Kløver Konge";
    
   std::cout << "Velg kortet programmet skal lete etter:" << std::endl;
   std::cin >> valgtkort;
   
   i = 1;
   while(kort >= i){
                    if(kortstokk[i] == valgtkort){
                          std::cout << std::endl << "Kortet er funnet!" << std::endl << std::endl << "Kortet var nummer " << i << " i bunken!" << std::endl;                                
                           
                          system("PAUSE");
                    }else{
                          i++;            
                    }                                 
   }
  std::cout << std::endl << "Kortet ble ikke funnet" << std::endl;
   
  system("PAUSE");
    
}

 

Uansett hvilket kort jeg skriver inn sier den at den at kortet ikke finnes.... :dontgetit:

 

Noen som vet hvorfor?

Endret av -XaHc-
Lenke til kommentar
Videoannonse
Annonse

Arrayer i C (og mer eller mindre alle andre språk) starter fra 0, så du skal gjøre `int kort = 52;' og gå fra kortstokk[0] til kortstokk[51].

 

Siden du bruker C++ bør du her bruke f.eks. std::list http://cppreference.com/cpplist/index.html

 

Når du leser inn navnet på kortet den skal lete etter må du bruke `getline', slik: getline(cin, valgtkort);

 

Når du bruker C++ og skal lete etter ting i konteinere som f.eks. std::list bruker du std::find http://cppreference.com/cppalgorithm/find.html

Lenke til kommentar
Arrayer i C (og mer eller mindre alle andre språk) starter fra 0, så du skal gjøre `int kort = 52;' og gå fra kortstokk[0] til kortstokk[51].

 

Siden du bruker C++ bør du her bruke f.eks. std::list http://cppreference.com/cpplist/index.html

 

Når du leser inn navnet på kortet den skal lete etter må du bruke `getline', slik:  getline(cin, valgtkort);

 

Når du bruker C++ og skal lete etter ting i konteinere som f.eks. std::list bruker du std::find http://cppreference.com/cppalgorithm/find.html

6723988[/snapback]

 

Fant det ut etterhvert, men det var ikke det som var hovedfeilen.. cin henter jo bare ett ord om gangen, og siden alle kortene hadde navn som bestod av to ord gikk det ikke

Lenke til kommentar
Les hva han skriver da:

getline(cin, valgkort);

Her leses en hel linje inn i valgkort, ikke bare ett ord.

6724288[/snapback]

Ja det er jo slik jeg vil ha det.

 

--

Leste ikke hele innlegget til lnostdal, så jeg så ikke hva han sa om getline, men fikk hjelp med den delen så det gjør ingenting

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...