Witam ponownie,
znowu mam problem.
Mam taką funkcję do odczytywania danych z pliku tekstowego i umieszczania ich w tablicy. W pliku dane oddzielone są przecinkami, więc musiałem zastosować funkcję zmieniającą przecinki na kropki.
int main(int argc, char **argv)
{
char nazwa[20];
char txt[20];
float **wsk;
float **tab;
int linie;
int i=0, n;
int liczba;
printf("Program 1 - Wczytanie danych z pliku .txt \ndo pamieci \n\n");
printf("Podaj ktory program chcesz uruchomic: \n");
scanf("%d", &liczba);
switch( liczba )
{
case 1:
Przecinkinakropki("zapis.txt");
Odczyt("zapis.txt");
tab=Odczyt("zapis.txt");
int l_linii=wsk[0][0];
Wyswietl(wsk);
break;
}
return 0;
}
float **Odczyt (char* nazwa)
{
int l_linii=0, i=0;
float **tab;
FILE *plik;
plik = fopen(nazwa, "r");
char znak;
while (!feof(plik))
{
znak=fgetc(plik);
if(znak=='\n') l_linii++;
}
tab = (float**)calloc(2, sizeof(float*));
for(i=0; i<2; i++)
{
tab[i] = (float*)calloc(l_linii+1, sizeof(float));
}
tab[0][0]= (float)l_linii;
rewind(plik);
i=1;
while(!feof(plik))
{
fscanf(plik, "%f %f", &tab[0][i], &tab[1][i]);
i++;
}
return tab;
}
void Wyswietl (float **tab)
{
int i;
for(i=0; i<tab[0][0]; i++)
{
printf("%f, %f \n", &tab[0][i], &tab[1][i]);
}
}
int Przecinkinakropki (char* plik)
{
char znak;
FILE *plik1, *plik2;
plik1=fopen("pierwszy.txt", "r");
plik2=fopen(plik, "w");
while(1) {
znak=fgetc(plik1);
if(znak==',') znak='.';
if(feof(plik1)) break;
fputc(znak, plik2);
}
fclose(plik1);
fclose(plik2);
return 0;
}
Czy ktoś mógłby mi powiedzieć co jest tutaj źle? Program się nie wywala, nie ma błędów, ale po prostu nic nie pokazuje, ani się nie kończy. Po prostu cały czas tak jakby działał.
Pozdrawiam