请求编写C++代码提取example.txt中指定字符串间内容(Dev-C++)
适配Dev-C的C文本提取方案
没问题,我给你写一段能直接在Dev-C里编译运行的C代码,正好实现你从example.txt中提取指定区间内容的需求。
思路说明
核心逻辑是先读取整个文件内容,然后定位你指定的两个标记字符串:
- 起始标记:
['Content','en']], - 结束标记:
',true],
找到这两个标记的位置后,截取中间的内容即可。如果标记不存在,代码也会给出明确提示。
完整代码
#include <iostream> #include <fstream> #include <string> using namespace std; int main() { // 定义要匹配的起始和结束标记 const string startMarker = "['Content','en']], "; const string endMarker = " ',true], "; // 打开目标文件 ifstream inputFile("example.txt"); if (!inputFile.is_open()) { cout << "无法打开example.txt文件,请检查文件路径是否正确!" << endl; return 1; } // 读取整个文件内容到字符串中 string content((istreambuf_iterator<char>(inputFile)), istreambuf_iterator<char>()); inputFile.close(); // 查找起始标记的位置 size_t startPos = content.find(startMarker); if (startPos == string::npos) { cout << "未找到起始标记:" << startMarker << endl; return 1; } // 移动指针到起始标记的末尾,定位到目标内容的起点 startPos += startMarker.length(); // 从起点开始查找结束标记的位置 size_t endPos = content.find(endMarker, startPos); if (endPos == string::npos) { cout << "未找到结束标记:" << endMarker << endl; return 1; } // 提取并输出目标内容 string targetContent = content.substr(startPos, endPos - startPos); cout << "提取到的内容:" << endl; cout << targetContent << endl; // 可选:将提取的内容保存到新文件 ofstream outputFile("extracted_content.txt"); if (outputFile.is_open()) { outputFile << targetContent; outputFile.close(); cout << "\n内容已保存到extracted_content.txt" << endl; } return 0; }
使用说明
- 把这段代码复制到Dev-C++的新建项目中
- 确保
example.txt和项目生成的exe文件在同一目录下(或者把代码里的文件名改成绝对路径,比如"C:\\your_folder\\example.txt") - 编译运行即可,提取的内容会在控制台输出,同时也会自动保存到
extracted_content.txt文件里(不需要这个功能的话,可以删掉相关代码块)
注意事项
- 如果你的
example.txt里的标记前后有空格或其他特殊字符,需要调整startMarker和endMarker的内容,确保和文件里的字符完全匹配 - 这段代码兼容Dev-C默认的C标准,不需要额外配置编译器选项
内容的提问来源于stack exchange,提问作者Ahmed Mehtab
相关产品推荐
相关产品推荐

