pytanie cologreen19 dotyczyło sposobu deklaracji
std::ifstream plik; // klasa std::ifstream posiada tylko i wyłącznie metody umożliwiające odczytywanie zawartości pliku
http://www.cplusplus.com/reference/fstream/ifstream/std::ofstream plik; // tu zapisu
http://www.cplusplus.com/reference/fstream/ofstream/użyłeś fstreame
http://www.cplusplus.com/reference/fstream/fstream/teraz flagi
in input Plik otwarty do odczytu: bufor strumienia wewnętrznego obsługuje operacje wejściowe.
out output Plik otwarty do zapisu: bufor strumienia wewnętrznego obsługuje operacje wyjścia.
binary binary Operacje wykonywane są w trybie binarnym, a nie tekst.
ate at end Pozycja wyjściowa zaczyna się na końcu tego pliku.
app append Aplikacja końca Wszystkie operacje wysyłania stanie na końcu dokumentacji, dodanie do już istniejących treści.
trunc truncate Wszelkie treści, które istniały w pliku, zanim będzie otwarte są odrzucane.
użyłeś flag
ios::app | ios::out
czyli teoretycznie dobrze
pytanie
1. czy ważna jest kolejnośc flag ?
w przykładzie jest
std::fstream fs;
fs.open ("test.txt", std::fstream::in | std::fstream::out | std::fstream::app);
spróbuj zmienić kolejność flag
ale są to inne flagi od użytych przez Ciebie
std::fstream::out | std::fstream::app
? czym to się różni
jak się patrzy na Input/output file stream class z
http://www.cplusplus.com/reference/fstream/fstream/to
ios <-istream
ios <-istream<-iostream<-fstream
skąd jest ten przykład
http://www.cplusplus.com/reference/fstream/fstream/open/
#include <fstream>
int main() {
std::fstream fs;
fs.open( "test.txt", std::fstream::in | std::fstream::out | std::fstream::app );
fs << " more lorem ipsum";
fs.close();
return 0;
}
może zmień te flagi na zgodne z tym przykładem
?
2. czy plik już istnieje ? czy go tworzysz od nowa ?
zmień nazwę może ma status zablokowny i otwarcie kończy się błędem
3. sprawdzić status operacji otwarcia
pewnie ?
if( plik.good() )
{
//INFO: plik udało się otworzyć
} else
{
//INFO: otwarcie pliku się nie powiodło
} //else
lub może
if (fs.open(..) == -1)
// nie udało się otworzyć
może są inne statusu