Odczytywanie i zapis do pliku
Ostatnio zmodyfikowano 2014-02-16 00:00
marcin022 Temat założony przez niniejszego użytkownika |
Odczytywanie i zapis do pliku » 2014-02-15 22:01:18 Witam na podstawie jednej z lekcji na tej stronie napisalem kilka funkcji realizujacych zapis i odczyt z pliku txt #include <iostream> #include <fstream>
using namespace std;
bool good; void opNaPliku() { fstream plik("plik.txt", ios::in | ios::out); if(plik.good() == true )//ta inst war sprawdza czy program dostal dostep do pliku
cout << "uzyskano dostep do pliku"<<endl; else cout<<"dostep do pliku zostal zabroniony!"<<endl;
} void odczyt() { fstream plik("plik.txt", ios::in | ios::out);//otwieram plik string dane;//tworze zmienna ktora bedzie przechowywac dane getline(plik, dane);//przenosze zawartosc pliku do zmiennej cout<<endl<<dane;//wypisuje }
void prawidlowy_odczyt()// ta funkcja pokazuje jak prawidlowo poslugiwac sie struieniem { fstream plik("plik.txt", ios::in | ios::out ); if(plik.good() == true)// zanim wykonamy operacje na pliku sprawdzamy czy mozemy go otworzyc { string dane; getline(plik, dane); cout<<endl<<dane; } }
//pobieranie danycg blokami void bloki() { fstream plik("plik.txt", ios::in); char bufor [1024]; plik.read(bufor, 1023); cout<<endl<<"wczytano "<<plik.gcount()<<" bajtow do bufora"<<endl; } void zapis() { fstream plik("plik.txt", ios::out | ios::app); if(plik.good() == true) { string dane; cout<<"Wprowadz tresc ktora chcesz dodac do pliku "<<endl; getline(cin, dane); while(!cin.good()) { cin.clear(); cin.sync(); getline(cin, dane); } plik<<endl<<dane;
} } /*prototyp niedzialajacy void czytaj() { fstream plik("plik.txt", ios::in ); string tab[10]; while(!plik.eof()) { int i; if( i<10) { getline(plik, tab[i]);
} else break; } for(int i=0; i<10; i++) { cout<<tab[i]<<endl; } } */ int main() {
//opNaPliku(); odczyt(); prawidlowy_odczyt(); bloki(); zapis(); czytaj(); return 0; }
Po odpaleniu program odczytuje jedynie pierwszy wiersz pliku txt. natomiast funkcja zapis(); dziala poprawnie i w pliku od nastepnego wiersza pojawia sie wpisana przez nas fraza. Po kolejnym uruchomieniu funkcji odczyt niestety nadal wyswietla sie tylko pierwszy wiersz. Bardzo mi zalezy zeby program wyswietlil calosc tego pliku. Prosze o pomoc i informacje jak tego cudu dokonac ? :) |
|
leon_w |
» 2014-02-16 00:00:12 Poczytaj o "getline()". Odczytuje ona dane, do momentu napotkania znaku nowego wiersza (jest to wartość domyślna, można wstawić inny znak). Odczytywanie powinienieś zrobić w pętli. np |
|
« 1 » |