记录下关于读取文件的东西

http://blog.csdn.net/ztp800201/article/details/7322110
在C++中,读取文件通常涉及到`ifstream`(输入文件流)类。如果你想从文件的特定位置开始读取直到找到某个特定的内容(例如,查找特定的标识符),可以按照以下步骤进行: ```cpp #include <fstream> #include <string> std::ifstream inputFile("your_file.txt"); // 打开文件 // 检查文件是否成功打开 if (!inputFile) { std::cerr << "Failed to open the file.\n"; return; } // 设置一个缓冲区大小,比如1MB std::streampos startOffset; // 存储需要开始的位置 std::streampos endOffset; // 存储目标结束的位置 std::string searchStr; // 要查找的目标字符串 // 如果有预设的起始位置和结束位置以及搜索字符串 startOffset = 10000; // 假设从第10000个字节开始 searchStr = "target"; // 搜索的特定字符串 inputFile.seekg(startOffset, std::ios::beg); // 通过seekg移动到指定位置 // 读取文件直到遇到目标字符串 std::string readBuffer; bool foundTarget = false; while (!foundTarget && !inputFile.eof()) { inputFile.read(readBuffer.data(), sizeof(char)*readBuffer.size()); readBuffer.append(readBuffer.data(), inputFile.gcount()); // 更新缓冲区大小 // 查找目标字符串 size_t pos = readBuffer.find(searchStr); if (pos != std::string::npos) { foundTarget = true; endOffset = inputFile.tellg(); // 记录实际读取到的位置 } } if (foundTarget) { // 输出读取区域范围和读取的内容 std::cout << "Read from position " << startOffset << " to " << endOffset << ".\n"; // ...在这里处理找到的内容... } else { std::cerr << "Target string not found.\n"; } inputFile.close(); // 关闭文件 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值