|
Informatyka UJ forum Rocznik 2005 - czyli najlepsze forum w sieci
|
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
|
Wysł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 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
|
Wysł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 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
|
Wysł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 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
|
Wysł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 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
|
Wysł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 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
|
Wysł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 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
|
Wysł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 |
|
|
|
|
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
|