Нужно ли мне вручную позвонить close()
, когда я использую std::ifstream
?Нужно ли вручную закрыть ifstream?
Например, в коде:
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");
}
Мне нужно позвонить file.close()
вручную делать? Должно ли ifstream
использовать RAII для закрытия файлов?
+1 - По крайней мере, тот, кто знает, что означает RAII :-) – Milan
+1 Я не знал, что RAII обрабатывает это ... Я думаю, вы узнаете что-то новое каждый день – TStamper
Использование вложенной области только для закрытия файла полностью искусственный - если вы хотите его закрыть, вызовите на нем close(). – 2009-04-14 15:23:02