Jump to content
Sign in to follow this  
Rabbid

Feil i kortstokk-koden min [LØST]

Recommended Posts

#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?

Edited by -XaHc-

Share this post


Link to post
Logger på MSN, så jeg jeg hjelpe deg der :p

// Var visst ikke pålogget

6723893[/snapback]

 

Er på MSN nå....

 

 

Noen andre som kanskje vet hvorfor?

 

Kompileringen går greit, så det dreier seg om en logisk feil.

Share this post


Link to post

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

Share this post


Link to post
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

Share this post


Link to post
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

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...