Witam, staram się napisać odczyt z pliku tekstowego danych liczbowych które są pooddzielane znakiem średnika ';' .
Niestety każdy wiersz w pliku ma inną długość.
Napisałem pewien kod, ale niestety mimo braku błędów podczas kompilowania, aplikacja crashuje się na starcie. Jedno z miejsc które nie odpowiada aplikacji zlokalizowałem, ale nie wiem czemu mu to nie pasi.
Problem który znalazłem opisany jest w komentarzu w kodzie.
Przykładowa zawartość:
1;1;1;2;1;1;1;1;1;0;0;0;1;1;1;1;1;1;1;1;
1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;
1;1;1;1;1;1;1;1;50;0;9;0;1;1;1;1;1;1;1;1;
1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;
void open()
{
string tab3[20];
int tab4[60][60];
int x,y=0;
string stringg;
int dlug=0;
char semicolon = ';';
int k=0;
fstream testfile;
testfile.open("file1.txt", std::ios::in | std::ios::out);
while(!testfile.eof())
{
getline(testfile, tab3[k]);
k++;
}
for(int i=0; i<N; i++)
{
stringg=tab3[i];
dlug=stringg.length();
for(int j=0; j<dlug; j++) // <- jeden z problemów to j<dlug, z uwagi że wiersze mają różną długość to i ilość przejść pętli
{ // powinna być różna, nie wiem jednak czemu mu to nie pasuje
if (tab3[i][j]>3)
{
tab4[y][x]=tab3[i][j]+tab3[i][j+1];
x++;
if(x==60)
{
y++;
}
cout<<"warunek 2"<<endl;
}
if (tab3[i][j]==';')
{
tab3[i][j]=tab3[i][j+1];
cout<<"warunek"<<endl;
}
}
dlug=0;
}
for(int i=0; i<N; ++i)
{
cout<<tab3[i]<<endl;
}
for(int i=0; i<60; i++)
{
for(int j=0; j<60; i++)
{
cout<<tab4[i][j];
}
}
testfile.close();
}