Ĺadny brzuch
Witam!
Jak zapisać dane do pliku, żeby nie utracić wcześniej zapisanych danych? Znalazłem w którymś temacie na tym forum, że można użyć funkcji SetFilePointer. Niestety wciąż dane są nadpisywane. Oto kod:
#include <iostream> #include <fstream> #include <windows.h> using namespace std; int main() { string dane; dane = "jakis tekst"; ofstream oPlik; oPlik.open("./dane.txt"); SetFilePointer(oPlik,GetFileSize(oPlik,NULL),NULL,0); oPlik << dane << endl; oPlik.close(); system("PAUSE"); }
SetFilePointer() zadziała, jeśli do otwarcia pliku użyjesz CreateFile() (Winapi :P). A Ty zrób tak:#include <iostream> #include <fstream> using namespace std; int main() { string dane; dane = "jakis tekst"; fstream oPlik; oPlik.open("./dane.txt"); oPlik.seekg(0,ios::end); oPlik << dane << endl; oPlik.close(); system("PAUSE"); }
Jak zwykle Cyrkiel okazał sie pomocny :D Dzięki :)
A jak zrobic identycznie to samo, tylko ze w c? B)
Nie wiem czy dobrze zrozumiałem chodzi ci o dopsywanie danych na końcu pliku jesli tak to masz przykład w C
#include <stdio.h> #include <iostream.h> int main() { FILE *f; // wskaznik do pliku // otworzenie pliku lub jego stworzenie if ((f = fopen("dane.txt","w"))==NULL) { cout<<"Nie moge stworzyc pliku!"; return 1; } char *dane = "jakis tekst"; //zapisywanie danch do pliku fwrite(&dane,sizeof(dane),1,f); // zamkniecie pliku fclose(f); // teraz bedzie dopisywanie danych // otworzenie pliku w trybie dopisywania danych if ((f = fopen("dane.txt","a"))==NULL) { cout<<"Nie moge otworzyc pliku!"; return 1; } char *dane1 = " dodatkowy tekst!"; fwrite(&dane1,sizeof(dane1),1,f); fclose(f); return 0; }
wielkie THX
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Jak zapisać dane do pliku, żeby nie utracić wcześniej zapisanych danych? Znalazłem w którymś temacie na tym forum, że można użyć funkcji SetFilePointer. Niestety wciąż dane są nadpisywane. Oto kod:
#include <iostream> #include <fstream> #include <windows.h> using namespace std; int main() { string dane; dane = "jakis tekst"; ofstream oPlik; oPlik.open("./dane.txt"); SetFilePointer(oPlik,GetFileSize(oPlik,NULL),NULL,0); oPlik << dane << endl; oPlik.close(); system("PAUSE"); }
SetFilePointer() zadziała, jeśli do otwarcia pliku użyjesz CreateFile() (Winapi :P). A Ty zrób tak:#include <iostream> #include <fstream> using namespace std; int main() { string dane; dane = "jakis tekst"; fstream oPlik; oPlik.open("./dane.txt"); oPlik.seekg(0,ios::end); oPlik << dane << endl; oPlik.close(); system("PAUSE"); }
Jak zwykle Cyrkiel okazał sie pomocny :D Dzięki :)
A jak zrobic identycznie to samo, tylko ze w c? B)
Nie wiem czy dobrze zrozumiałem chodzi ci o dopsywanie danych na końcu pliku jesli tak to masz przykład w C
#include <stdio.h> #include <iostream.h> int main() { FILE *f; // wskaznik do pliku // otworzenie pliku lub jego stworzenie if ((f = fopen("dane.txt","w"))==NULL) { cout<<"Nie moge stworzyc pliku!"; return 1; } char *dane = "jakis tekst"; //zapisywanie danch do pliku fwrite(&dane,sizeof(dane),1,f); // zamkniecie pliku fclose(f); // teraz bedzie dopisywanie danych // otworzenie pliku w trybie dopisywania danych if ((f = fopen("dane.txt","a"))==NULL) { cout<<"Nie moge otworzyc pliku!"; return 1; } char *dane1 = " dodatkowy tekst!"; fwrite(&dane1,sizeof(dane1),1,f); fclose(f); return 0; }
wielkie THX