酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

C++:实现 txtdata 类,构造读文件析构逆序写文件(附代码及不足分析)

以下是定义`txtdata`类的代码: ```cpp #include <iostream> #include <fstream> #include <algorithm> class txtdata { private: std::string filename; std::string data[10]; public: txtdata(const std::string& filename) { this->filename = filename; std::ifstream file(filename); std::string line; int i = 0; while (std::getline(file, line) && i < 10) { data[i] = line; i++; } file.close(); } ~txtdata() { std::reverse(data, data + 10); std::ofstream file(filename); for (int i = 0; i < 10; i++) { if (!data[i].empty()) { file << data[i] << std::endl; } } file.close(); } }; int main() { txtdata data("example.txt"); return 0; } ``` 在构造函数中,通过传入的文件名打开文件,并逐行读取最多18个字符串(限制为10个,因为私有成员变量`data`只有长度为10)。将每行字符串存储到`data`数组中。 在析构函数中,通过`std::reverse`函数对`data`数组进行逆序操作。然后重新打开文件,并将逆序后的字符串按行写入文件中,覆盖原有内容。 在主函数中,使用`txtdata`类创建一个对象`data`,并传入文件名为"example.txt"。 上述代码尚未添加错误处理和越界检查,你可以根据实际需要进行修改。 ######[AI写代码神器 | 851点数解答 | 2024-06-01 15:27:14]

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