Nie potrafię sobie poradzić z dziwnym zjawiskiem w moim programie (kod poniżej). Kiedy przypisuję jakieś słowa komórkom 2 i 3, wszystko jest w porządku, ale gdy przypisuję jakieś słowo komórce 1, zdarza się (to zależy chyba od kolejności wprowadzania danych), że to samo słowo pojawia się w komórce 4 i vice versa. (Edit: sprawdziłem jeszcze kilka kombinacji i chyba mam tu do czynienia z czymś w rodzaju przepełniania się... czegoś? Może zmienna 'pozycja' wariuje?) Może wina leży po stronie pętli 'for' wypisującej dane, a może po prostu coś mi się pomieszało w tablicy? Proszę o pomoc.
#include <iostream>
#include <string>
using namespace std;
char pwTest;
char takNie;
int pozycja;
string tab[3];
string kom0 = "-";
string kom1 = "-";
string kom2 = "-";
string kom3 = "-";
int tabPokaz()
{
//
return 0;
}
int tabWpisz()
{
//
return 0;
}
int main()
{
tab[0] = kom0;
tab[1] = kom1;
tab[2] = kom2;
tab[3] = kom3;
//Tablica jest pusta.
cout << endl << "\tBAZA DANYCH W C++";
cout << endl << endl;
cout << "Wszystkie komorki sa puste.";
cout << endl << endl;
cout << "Pokaz dane (p) / Wpisz dane (w)\t";
cin >> pwTest;
while (pwTest != 0)
{
while (pwTest == 'p')
{
system ("CLS");
cout << endl;
for (int i=1; i<=4; i++)
{
cout << "\t" << i << ". " << tab[i] << endl;
}
cout << endl;
cout << "Pokaz dane (p) / Wpisz dane (w)\t";
cin >> pwTest;
}
while (pwTest == 'w')
{
system ("CLS");
pozycja = 0;
cout << endl;
cout << "Numer komorki: ";
cin >> pozycja;
cout << endl;
cout << "Wprowadz dane: ";
switch (pozycja)
{
case 1:
cin >> kom0;
tab[pozycja] = kom0;
break;
case 2:
cin >> kom1;
tab[pozycja] = kom1;
break;
case 3:
cin >> kom2;
tab[pozycja] = kom2;
break;
case 4:
cin >> kom3;
tab[pozycja] = kom3;
break;
}
cout << endl;
cout << "Pokaz dane (p) / Wpisz dane (w)\t";
cin >> pwTest;
}
}
system ("CLS");
cout << "Dziekuje!";
cout << endl << endl;
system ("PAUSE");
return 0;
}