酷代码 AI
菜单
服务商

C++实现txtdata类:构造读20字符串,析构逆序覆盖原文件内容

以下是一个实现要求的 txtdata 类的示例代码: ```cpp #include <iostream> #include <fstream> #include <string> class txtdata { private: std::string data[20]; std::string filename; public: txtdata(const std::string& filename) : filename(filename) { std::ifstream file(filename); if (file.is_open()) { std::string line; int i = 0; while (std::getline(file, line) && i < 20) { data[i] = line; i++; } file.close(); } } ~txtdata() { std::ofstream file(filename); if (file.is_open()) { for (int i = 19; i >= 0; i--) { if (!data[i].empty()) { file << data[i] << std::endl; } } file.close(); } } }; int main() { txtdata data("example.txt"); return 0; } ``` 在上述示例中,txtdata 类具有一个私有成员变量 string data[20] 用于存储最多 20 个字符串,以及一个私有成员变量 string filename 用于存储文件名。构造函数会根据传入的文件名打开文件,并读取最多 20 个字符串存入 data 数组中。析构函数会向同一文件中按原文件的逆序写入字符串,每行一个,覆盖原有内容。 请注意在构造函数和析构函数中,使用了流对象 ifstream 和 ofstream 分别进行文件的读取和写入操作。请确保在使用文件流时进行错误检查,以防止文件打开失败或写入失败等问题。 ######[AI写代码神器 | 924点数解答 | 2024-06-01 15:25:43]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]