ďťż

Ładny brzuch

Do operacji na plikach uzywam biblioteki <fstream>. Jak za pomocą tej klasy mogę czytać zawartość pliku? Załużmy że stworzyłem taki pliczek:
Wartość1 = 0 Wartość2 = 34 Wartość3 = 234
Wszystko wpisałem za pomocą instrukcji cout.
I tu jest mój problem jak mogę odczytać wartosći poszczególnych wartości? Jakiej instrukcji do tego się używa?



nie sadze zeby byla do tego funkcja, choc bycmoze jest .. ja proponuje znak po znaku, czyli od znaku 0 do konca ... sprawdzasz czy znak nie jest znakiem '=' ... jesli nie jest, do tymczasowej zmiennej wrzucasz kolejna literke... jesli jest = to zmienna tymczasowa wrzucasz do jakiejs listy czy cosik a potem zapelniasz tymczasowa zmienna kolejnymi literkami az do natrafienia na enter ;]


nie sadze zeby byla do tego funkcja, choc bycmoze jest .. ja proponuje znak po znaku, czyli od znaku 0 do konca ... sprawdzasz czy znak nie jest znakiem '=' ... jesli nie jest, do tymczasowej zmiennej wrzucasz kolejna literke... jesli jest = to zmienna tymczasowa wrzucasz do jakiejs listy czy cosik a potem zapelniasz tymczasowa zmienna kolejnymi literkami az do natrafienia na enter ;]


Oto mi właśnie chodzi ;) , tylko jak odczytać znak po znaku :D




petla, od 0 do text.length


Nie możemy się zrozumieć ;)  chodzi mi o to jak ODCZYTAĆ ten znak :)

Chodzi mu raczej o ifstream::get. ;)
Ale chyba wygodniej użyć operatora >> albo ifstream::getline.
Opis tych funkcji znajdziesz tutaj.
Użytkownik Chmurek edytował ten post 27 marzec 2006, 19:22

Chodzi mu raczej o ifstream::get. ;)
Ale chyba wygodniej użyć operatora >> albo ifstream::getline.
Opis tych funkcji znajdziesz tutaj.

Moim zdaniem nie - czemu nie odczytać od razu przy przechodzeniu pliku?
Po pierwsze - tak będzie szybciej, bo nie trzeba będzie dwa razy tego samego przechodzić.
Po drugie - Twoja metoda wymaga użycia bufora o wielkości takiej jak plik co przy dużym jego rozmiarze i/lub małej ilości dostępnej pamięci może być problematyczne.
Poza tym funkcjami, które podałem można przecież wgrać wszystko do jednego string'a, tak jak chciałeś. ;)


Moim zdaniem nie - czemu nie odczytać od razu przy przechodzeniu pliku?
Po pierwsze - tak będzie szybciej, bo nie trzeba będzie dwa razy tego samego przechodzić.
Po drugie - Twoja metoda wymaga użycia bufora o wielkości takiej jak plik co przy dużym jego rozmiarze i/lub małej ilości dostępnej pamięci może być problematyczne.
Poza tym funkcjami, które podałem można przecież wgrać wszystko do jednego string'a, tak jak chciałeś. ;)


wyobrazasz se operacje na pliku? :P


Ale tak ogólnie jeśli nie trzeba mieć całości na raz w pamięci to lepiej fragmentami wczytywać, więc ciekaw jestem dlaczego u Ciebie trzeba całość.


Chodzi mu raczej o ifstream::get. ;)
Ale chyba wygodniej użyć operatora >> albo ifstream::getline.
Opis tych funkcji znajdziesz tutaj.

Mam taki kod:
#include <fstream.h> #include <iostream.h> char do_zapisu[100]; int main() { fstream plik("plik.moj", ios::aut | ios::trunc) // jeśli pliku nie ma to jest tworzony plik << "lol"; getline(do_zapisu,3); // zapisuje 3 pierwsze znaki do tablicy for(int i=0; i<3;i++)  {     cout << do_zapisu[i] << endl;  } }

Po skompilowaniu i uruchomieniu tablica jest pusta <_< . O co chodzi??

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •