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]
- 批处理文件:依据参数表.xlsx精准修改文件.txt中p、t、s值(GPT | 811点数解答 | 2024-12-05 12:58:37)408
- 用批处理和Python实现“参数表.xlsx”与“文件.txt”数据匹配及修改(讯飞星火 | 531点数解答 | 2024-12-05 13:20:42)385
- 批处理文件:依据参数表.xlsx精准修改文件.txt特定参数值(阿里通义 | 495点数解答 | 2024-12-05 13:22:26)362
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)369
- C++:冒泡排序函数模板与文件读写类(txtdata、bindata)的实现及应用(GPT | 1941点数解答 | 2024-06-01 16:23:06)320
- 深入解析格雷码生成算法:递归求解与代码实现(DeepSeek | 443点数解答 | 2026-01-05 12:21:49)69
- Python 利用 win32com 库:将 Excel 转换为 A4 横向 PDF 并单独打印首列(字节豆包 | 507点数解答 | 2025-03-10 15:48:12)327
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)341
- Java 实现:轻松生成 5 位数字、大小写字母混合验证码( | 266点数解答 | 2024-03-06 17:39:10)345
- 深度剖析:游戏中两个 Buff 效果的触发条件、逻辑及注意要点 (阿里通义 | 566点数解答 | 2024-11-26 14:24:12)270
- 深度剖析 Vue 2 插槽:从基础使用到高级玩法(字节豆包 | 165点数解答 | 2024-11-29 11:25:06)227
- C++实现支持四则运算的简单计算器,处理除数为0和无效操作(字节豆包 | 241点数解答 | 2025-10-29 20:21:29)77