Witam
Mam problem z wczytaniem słownika do tablicy dynamicznej. Na początku w petli while zliczam do zmiennej ile jest linii a następnie przesuwam wskaźnik pliku na jego początek i chce wczytać dane do utworzonej tablicy dynamicznej jednak nic nie wczytuje. Z góry dziękuje za pomoc.
Poniżej zamieszczam kod źródłowy:
#include <cstdlib>
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
struct data{
char key;
string signs;
};
int main(int argc, char *argv[])
{
data tab[8];
tab[0].key='2'; tab[0].signs="abc";
tab[1].key='3'; tab[1].signs="def";
tab[2].key='4'; tab[2].signs="ghi";
tab[3].key='5'; tab[3].signs="jkl";
tab[4].key='6'; tab[4].signs="mno";
tab[5].key='7'; tab[5].signs="pqrs";
tab[6].key='8'; tab[6].signs="tuv";
tab[7].key='9'; tab[7].signs="wxyz";
ifstream odczyt;
odczyt.open("test.txt");
string dane; //zmienna do ktorej wczytujemy cyfry
int k=0; string line; //zmienne do policzenia ilości wierszy
while(!odczyt.eof()){
getline(odczyt,line);
cout<<k<<". "<<line<<endl;
k++;
}
int pozycja = odczyt.tellg(); // Sprawdzamy pozycję
cout<<"Position: "<<pozycja<<endl;
odczyt.seekg(0, ios::beg);
pozycja = odczyt.tellg(); // Sprawdzamy pozycję
cout<<"Position: "<<pozycja<<endl;
string *tablica=new string[k];
for (int i=0;i<k;i++){
odczyt>>tablica[i];
cout<<"Tablica "<<i<<". "<<tablica[i]<<endl;
}
cout<<"Wprowadz dane w postaci cyfr\n";
cin>>dane;
int i=0;
while (i<dane.length()){
for (int j=0;j<8;j++){
if (dane[i]==tab[j].key){
cout<<tab[j].signs<<endl;
}
}
i++;
}
system("PAUSE");
return EXIT_SUCCESS;
}