Odczytywanie danych z pliku tekstowego

2014-06-15 11:00

Rejestracja: 5 lat temu

Ostatnio: 5 lat temu

0

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

Pozostało 580 znaków

2014-06-15 11:13

Rejestracja: 14 lat temu

Ostatnio: 4 dni temu

0
  1. Nie zastosowałeś struktury
  2. Niepotrzebnie czytasz plik dwukrotnie
  3. Nie rozumiesz w którym momencie jest ustawiana flaga eof
  4. Nawet nie poczytałeś o formatowaniu kodu.

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2014-06-15 11:37

Rejestracja: 5 lat temu

Ostatnio: 5 lat temu

0
  1. Czy struktura tutaj musi być?
  2. No niestety nie rozumiem. Błąd z eof jest w funkcji Przecinkinakropki?
    Dzięki za pomoc

Pozostało 580 znaków

2014-06-15 12:16

Rejestracja: 14 lat temu

Ostatnio: 4 dni temu

0

Czy u człowieka musi być na ramionach głowa? Nie, przecież są tacy u których na ramionach ... nie głowa.
Nie rozumiesz, to googlować, nie chce mi się tu streszczać podręcznika z podstaw.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
edytowany 1x, ostatnio: _13th_Dragon, 2014-06-15 12:16

Pozostało 580 znaków

2014-06-15 15:21

Rejestracja: 6 lat temu

Ostatnio: 1 dzień temu

Lokalizacja: Warszawa

0

trzymasz w pliku liczby zmiennoprzecinkowe odseparowane przez kropkę ? ;\


PROGRAMY NA ZAMÓWIENIE, ZALICZENIA STUDENCKIE, KONFIGURACJA SERWERÓW, SYSTEMÓW I BAZ DANYCH, STRONY INTERNETOWE, POMOC W PROGRAMOWANIU, POPRAWIENIE I OPTYMALIZACJA APLIKACJI
JAVA, C++, LINUX, WWW, SQL, PYTHON
POSIADAM KOMERCYJNE DOŚWIADCZENIE
TANIO, SZYBKO I PORZĄDNIE
Z KOMENTARZAMI OBJAŚNIAJĄCYMI KOD
PISZ NA PRYWATNĄ WIADOMOŚĆ
CENY JUŻ OD 49,99ZŁ ZA PROGRAM
ZAJMIJ SIĘ TYM CO CIĘ NAPRAWDĘ INTERESUJE!
edytowany 1x, ostatnio: karolinaa, 2014-06-15 15:21
Po to ma tego bubla: Przecinkinakropki - _13th_Dragon 2014-06-15 15:23

Pozostało 580 znaków

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0