Dzień dobry. Otóż mój problem polega na tym, że nie wiem jak utworzyć tablicę dynamiczną z nieznanym wcześniej rozmiarem. Potrafię wczytać dane z pliku:
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
void zpliku(string);
int main()
{
string produkt = "owoce.txt";
zpliku(produkt);
return 0;
}
void zpliku(string tytul)
{
fstream plik;
string nazwa[50]; float WW[50]; float WBT[50];
int nr_linii = 1;
plik.open(tytul.c_str(), ios::in);
if(plik.good()==false)
{
cout << "Nie udalo sie otworzyc pliku!";
}
string linia; int licznik = 0;
while(getline(plik, linia))
{
switch(nr_linii)
{
case 1: nazwa[licznik] = linia; break;
case 2: WW[licznik] = atof(linia.c_str()); break;
case 3: WBT[licznik] = atof(linia.c_str()); break;
}
if(nr_linii==3) {nr_linii=0; licznik++;}
nr_linii++;
}
plik.close();
for(int i = 0; i < licznik; i++)
{
cout << nazwa[i] << endl;
cout<< WW[i] << endl;
cout << WBT[i] << endl;
}
}
Potrafię też tworzyć tablicę dynamiczną, ale aby jej użyć muszę wiedzieć jaki będzie jej rozmiar:
#include <iostream>
using namespace std;
int main()
{
string *tablica;
tablica = new string[ile];
for (int i = 0; i < ile; i++)
{
//kod
}
delete [] tablica;
return 0;
}
tylko jaka ma być wielkość tego "ile" tworzonej tablicy dynamicznej. Musiałbym poznać ilość wierszy w pliku tekstowym, a chodzi o to abym mógł wczytywać plik jakiejkolwiek wielkości. Wielkość mogę poznać, ale dopiero po przeprowadzonej operacji wczytywania co wymusza wcześniejsze utworzenie zwykłych tablic "nazwa" , "WW" i "WBT". Chodzi o to żebym nie marnował pamięci na utworzenie tak dużych tablic jeśli tak dużych w danym momencie nie potrzebuję.
Mam nadzieję, że udało mi się opisać mój problem. Z góry dziękuję za odpowiedzi.
Pozdrawiam.