Chcę w funkcji pobrać z pliku ilość wierszy, następnie utworzyć tablicę string wers[ile_wersow_w_zdaniu];
A w main przekonwertować ze stringa do tablicy znaków skacząc po tablicy wers[i];
Problem: widoczność tablicy. Deklarując w funkcji tablicę nie jest ona dostępna w main. Co mam zrobić?
Nie problem zrobić tablicę globalną, ale tworząc tablicę o liczbie elementów, która dopiero zostanie zliczona w funkcji i uczynić ją globalnie widoczną - w tym tkwi mój problem.
Deklaracja tablicy string wers = new string[ile_wersow_w_zdaniu]; ani powyższa nie odnosi skutku.
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
void metoda1()
{
ifstream in("D:\plik.txt");
int licznik=0;
int ile_wersow_w_zdaniu=0; string temp;
while(getline(in, temp)){++ile_wersow_w_zdaniu;}//getline zwróci FALSE gdy nie napotka nowego wiersza zamykając pętlę while
string *wers[ile_wersow_w_zdaniu]; //nowa tablica
while(getline(in, *wers[licznik]))
{cout<<wers[licznik]<<endl;
licznik++;}
}
int main(int argc, char *argv[])
{
metoda1();
char znaki[1000];
string temp="";
for(int i=0;i<100;i++)
{memcpy(znaki,*wers[i].c_str(),*wers[i].size());
temp+=znaki;
}
cout<<temp;
system("PAUSE");
return EXIT_SUCCESS;
}