Obsługa plików
Ostatnio zmodyfikowano 2012-12-02 22:49
whiskas Temat założony przez niniejszego użytkownika |
Obsługa plików » 2012-12-02 22:26:10 Witam. Szlifując dalej moje umiejętności programowania próbuję ogarnąć obsługe plików. Problem polega na tym, że puki co jestem w stanie zapisać dane do pliku, wymazać je, ale za żadne skarby nie jestem w stanie odczytać ich, może mi ktoś poprawić mój kod tak, żeby program mi wyświetlił tekst który wprowadzam chwilę wcześniej? #include <iostream> #include <conio.h> #include <fstream> #include <string> using namespace std; main() { fstream plik; plik.open( "tekst.txt", ios::in | ios::out | ios::trunc ); if( plik.good() == true ) { cout << "Uzyskano dostep do pliku!" << endl; string napis; getline( cin, napis ); plik.write( & napis[ 0 ], napis.length() ); string dane; cout << getline( plik, dane ); } else cout << "Dostep do pliku zostal zabroniony!" << endl; getch(); return 0; }
|
|
Mrovqa |
» 2012-12-02 22:38:58 plik.write( & napis[ 0 ], napis.length() );
std::string to nie char*. Pobierasz adres pierwszego znaku... Użyj metody std::string::c_str(). |
|
whiskas Temat założony przez niniejszego użytkownika |
» 2012-12-02 22:46:11 Hmmm, albo coś źle robie, albo dalej to nie to, bo dane są zapisane w pliku i plik jest czyszczony za każdym razem gdy uruchamiam program, ale nie wyświetli mi to co wpisuje do pliku ;/ |
|
ison |
» 2012-12-02 22:47:27 @Mrovqa, dobrze jest Nie odczytuje zapisanej wartości bo w momencie wczytania wskaźnik aktualnej pozycji znajduje się na końcu pliku. odczytuj w ten sposób string dane; plik.seekg( 0, ios_base::beg ); getline( plik, dane ); cout << dane;
|
|
whiskas Temat założony przez niniejszego użytkownika |
» 2012-12-02 22:49:56 Thx Ison, tak myślałem żeby wskaźnik przestawić na początek, ale jakoś coś mi kod nie podszedł i nie mogłem go rozkminić, thx za pomoc, temat zamykam =] |
|
« 1 » |