dziwnego zachowania
Zetknąłem się z dziwnym zachowaniem strumienia, najmniej dla mnie dziwnym. Oto mój program, korzystam z Visual Studio 2010 Express Edition.
int main () {
std::ofstream file("file.txt");
file << "something1";
file.close();
file.open("file.txt", std::ios::ate | std::ios::in );
file << "something2";
file.close();
return 0;
}
Daje to prawidłowe wyjście.
coś1 coś2
Teraz, jeśli zastąpię dziewiąty wiersz następującym kodem,
file.open("file.txt", std::ios::ate);
dostaję to wyjście.
coś2
Ale jeśli zastąpię dziewiąty wiersz, tym razem tym kodem,
file.open("file.txt", std::ios::ate | std::ios::in );
dostaję to wyjście.
coś1 coś2
Myślę, że pytanie brzmi: czy ktoś mógłby mi pomóc to zrozumieć? Dlaczego ostatnie rozwiązanie działa, ale środkowe nie.
EDYTOWAĆ: Poprawiono główną funkcję. Każdego dnia uczysz się czegoś.