Forum Informatyka UJ forum Strona Główna Informatyka UJ forum
Rocznik 2005 - czyli najlepsze forum w sieci
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

[C++] Czytanie liczb zmiennoprzecinkowych z pliku tekstowego

 
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka UJ forum Strona Główna -> Archiwum / 1 rok / 2 i 3 semestr - Programowanie
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Prezioso
pijak



Dołączył: 18 Lis 2005
Posty: 100
Przeczytał: 0 tematów

Skąd: Kraków

PostWysłany: Pon 14:50, 29 Maj 2006    Temat postu: [C++] Czytanie liczb zmiennoprzecinkowych z pliku tekstowego

Przykład:
mając dany plik taki jak [link widoczny dla zalogowanych] chciałbym wczytywać liczby z tego pliku do oddzielnych tablic double'ów lub floatów... każda linijka 3*i+1 to jedna liczba, 3*i+2 to n liczb, 3*i - pusta..., i całkowite>=0, najbardziej interesuje mnie jak się wczytuje do "end of line".. czy jest taka funkcja??
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
dzendras
Germański oprawca



Dołączył: 07 Mar 2006
Posty: 1326
Przeczytał: 0 tematów

Skąd: Chorzów

PostWysłany: Pon 15:16, 29 Maj 2006    Temat postu:

Ja wczytywałem plik txt o podobnej strukturze (miałem jeszcze inty, stringi itp). Polecam funkcje fscanf.

Kod:
FILE *plik=fopen("./towary/towary.txt","r");
      while (!feof(plik))
         {
            fscanf(plik,"%s %Lf %d %d", nazwa, &cena, &odlat, &waznosc);
         }
      fclose(plik);

Tak wygląda przykładowa funkcja. Szczegółowej dokumentacji poszukaj w necie.

UWAGA: ta funkcja pobiera WSKAŹNIKI do zmiennych. Ja tego nie doczytałem i włosy z głowy rwałem przez parę godzin. Powodzenia!
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Rogal
Zjeb z kaszanką



Dołączył: 13 Mar 2006
Posty: 1745
Przeczytał: 0 tematów

Skąd: koło podbiegunowe

PostWysłany: Pon 15:23, 29 Maj 2006    Temat postu:

@Prezio: Najlepsze co mogę zasugerować to przy zapisywaniu pliku w pierwszej linii zapisać liczbę całkowitą i równą ilości rekordów w tabeli. Wtedy na początku zczytujesz tą liczbę i zczytujesz resztę zwykłą pętlą for.
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Prezioso
pijak



Dołączył: 18 Lis 2005
Posty: 100
Przeczytał: 0 tematów

Skąd: Kraków

PostWysłany: Pon 15:41, 29 Maj 2006    Temat postu:

dzendras napisał:
Ja wczytywałem plik txt o podobnej strukturze (miałem jeszcze inty, stringi itp). Polecam funkcje fscanf.

Kod:
FILE *plik=fopen("./towary/towary.txt","r");
      while (!feof(plik))
         {
            fscanf(plik,"%s %Lf %d %d", nazwa, &cena, &odlat, &waznosc);
         }
      fclose(plik);

Tak wygląda przykładowa funkcja. Szczegółowej dokumentacji poszukaj w necie.

UWAGA: ta funkcja pobiera WSKAŹNIKI do zmiennych. Ja tego nie doczytałem i włosy z głowy rwałem przez parę godzin. Powodzenia!


Problem jest w tym że liczbę n poznaje dopiero po przeczytaniu pierwszej z linijek typu 3*i+2..
fscanf(plik,n*"%f", &double); :)
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
dzendras
Germański oprawca



Dołączył: 07 Mar 2006
Posty: 1326
Przeczytał: 0 tematów

Skąd: Chorzów

PostWysłany: Pon 15:48, 29 Maj 2006    Temat postu:

Rozumiem. To zrób tak jak radzi Rogal. Pomysł z ASD1 - sprawdzony ;)
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
oinopion
żul



Dołączył: 28 Lis 2005
Posty: 858
Przeczytał: 0 tematów

Skąd: Kraków

PostWysłany: Pon 16:11, 29 Maj 2006    Temat postu:

Kod:
while(fscanf("%Lf ", &moj_dubel))  /* co tam chcesz */;

to bedzie zjadało kolejne liczby. fscanf zwraca ilosc poprawnie wczytanych zmiennych.
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Stasiu
zielony żul



Dołączył: 16 Lis 2005
Posty: 920
Przeczytał: 0 tematów

Skąd: krk

PostWysłany: Sob 11:31, 03 Cze 2006    Temat postu:

Nie chce zakładać nowego tematu więc się podepne tutaj. Jak używać "rand()" w c++?
EDIT : ok, juz mam. :p
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka UJ forum Strona Główna -> Archiwum / 1 rok / 2 i 3 semestr - Programowanie Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
Regulamin