Czy muszę ręcznie dzwonić pod numer close()
, gdy używam numeru std::ifstream
?Czy muszę ręcznie zamknąć ifstream?
Na przykład, w kodzie:
std::string readContentsOfFile(std::string fileName) {
std::ifstream file(fileName.c_str());
if (file.good()) {
std::stringstream buffer;
buffer << file.rdbuf();
file.close();
return buffer.str();
}
throw std::runtime_exception("file not found");
}
Czy muszę zadzwonić file.close()
ręcznie? Czy nie powinno być ifstream
używać do zamykania plików RAII?
+1 - Przynajmniej jedno, kto wie, co oznacza RAII :-) – Milan
+1 Nie wiedziałem, że RAII to obsługuje ... Domyślam się, że codziennie się uczysz nowego – TStamper
Używanie zagnieżdżonego zakresu tylko do zamknięcia pliku całkowicie sztuczny - jeśli chcesz go zamknąć, wywołaj close() na nim. –