Przykład poniżej pokazuje zarządzeniem uchwytem do pliku (w konstruktorze plik jest otwierany, w destruktorze niszczony), za pomocą funkcji znanych z C.
#include <iostream> #include <string> #include <cstdio> class FileManager { public: FileManager(const std::string& filePath) { std::cout << "Open file" << std::endl; _fileHandler = std::fopen(filePath.c_str(), "w+"); } void write(const std::string& str) { if(_fileHandler == nullptr) return; if(std::fputs(str.c_str(), _fileHandler) == EOF) throw std::exception(); } ~FileManager() noexcept { std::cout << "Close file" << std::endl; if(_fileHandler != nullptr) std::fclose(_fileHandler); } private: FILE* _fileHandler; }; void modifyFile() { FileManager f("aaa.txt"); f.write("some text\n"); } int main() { modifyFile(); std::cout << "End" << std::endl; return 0; }Wynik:
Open file Close file End
Brak komentarzy:
Prześlij komentarz