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