Tôi có cần gọi theo cách thủ công close()
khi tôi sử dụng std::ifstream
không?Tôi có cần đóng thủ công ifstream không?
Ví dụ, trong các mã:
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");
}
Tôi có cần phải gọi file.close()
cách thủ công? Không nên ifstream
sử dụng số RAII để đóng các tệp?
+1 - Ít nhất một người biết RAII có nghĩa là gì :-) – Milan
+1 Tôi không biết rằng RAII xử lý ... Tôi đoán bạn học điều gì đó mới hàng ngày – TStamper
Sử dụng phạm vi lồng nhau chỉ để đóng tệp là hoàn toàn nhân tạo - nếu bạn muốn đóng nó, hãy gọi close() trên đó. –