Wczytywanie gry a stringi

Witam.

Poniżej przedstawiam kod do wczytywania gry, mam z nim problem a mianowicie po kompilacji gdy próbuje odczytać grę wywala mi błąd

string subscript out of range

unsigned short WczytajGre (unsigned short Mapa [23] [40])

{

	string sTemp [23];

	ifstream iSave("save.dat");

	if (!iSave.good()) return 0;

	for (short i = 0 ; i <= 22 ; i++) getline (iSave , sTemp [i]);

	for (short i = 0 ; i <= 22 ; i++)

	{

		for (short i2 = 0 ; i <= 39 ; i2++)

		{

			switch (sTemp [i] [i2])

			{

				case '0': Mapa [i] [i2] = 0;break;

				case '1': Mapa [i] [i2] = 1;break;

				case '2': Mapa [i] [i2] = 2;break;

				case '3': Mapa [i] [i2] = 3;break;

				case '4': Mapa [i] [i2] = 4;break;

				case '5': Mapa [i] [i2] = 5;break;

			}

		}

	}

}

Linie wczytywane przez std::getline nie muszą mieć długości 40 znaków. switch w którym sprawdzasz znak(sTemp_[_ i2 ]) prawdopodobnie wychodzi poza zakres tego napisu.

Problemem było

i <= 39

zamiast

i2 <= 39

:wink: