2017-10-23 2 views
1

Ich mache eine Version des Spiels Mastermind für eine Klasse. Allerdings habe ich leider eine Straßensperre getroffen. Wenn ich die Lösung für das Programm erstelle, kompiliert es gut, aber am Ende bekomme ich einen Laufzeitfehler. Es heißt "Ausdruck: Vektor-Index außerhalb des Bereichs". Weiß jemand was das bedeutet und wie repariere ich es? Nichts, was ich bisher online gefunden habe, war in irgendeiner Weise hilfreich.(Visual C++) macht eine Version des Spiels Mastermind

Hier ist der Code so weit: `

#include <iostream> 
#include <vector> 
#include <iomanip> 
using namespace std; 

//This is where the User is allowed to input the numbers of the secret code 
void chooseNumbers(int &howMany, int &howBig) { 
int i; 

vector<int> secret; 

cout << "What's the secret? " << endl; 
for (i = 0; i < howMany; ++i) { 
    cin >> secret[i]; 
} 

    if (secret[i] > howBig || secret[i] < 1) { 
     cout << "Numbers must be between 1 and " << howBig << endl; 

     cout << "What's the secret? " << endl; 
     for (i = 0; i < howMany; ++i) { 
      cin >> secret[i]; 
    } 
    } 
} 

int main() { 
    int howMany; 
    int howBig; 


    cout << "How many numbers? " << endl; 
    cin >> howMany; 

    cout << "How big can the numbers be? " << endl; 
    cin >> howBig; 

    chooseNumbers(howMany, howBig); 

} 
` 

Antwort

1

Der [] Bediener einfach einen Verweis auf das Element an der angegebenen Position zurückkehrt, und da gibt es nichts auf dem Vektor ist, sind Sie außerhalb des Bereichs.

vector<int> secret; 

cout << "What's the secret? " << endl; 
for (i = 0; i < howMany; ++i) { 
    cin >> secret[i]; 
} 

Verwenden Sie stattdessen push_back

Verwandte Themen