如何提取一个文本中两行已知内容之间的内容?
请问如何提取一个文本中两行已知内容之间的内容。
比如在某hosts文件中存在如下内容。
……
Localhost (DO NOT REMOVE)
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
Modified hosts start
……
我想要提取“Localhost (DO NOT REMOVE)”和“Modified hosts start”中的内容到另外一个文本中。
应该怎么解决呢?我使用的如下代码哪里有问题呢?
char str[256],start1[256],end1[256];
strcpy(start1,"# Localhost (DO NOT REMOVE)");
strcpy(end1,"# Modified hosts start");
while (!feof(fstream_backup)){
fgets(str,1024,fstream_backup);
if (strcmp(str, start1)==0){
while (strcmp(str, end1)!=0){
fgets(str,1024,fstream_backup);
fprintf(fstream_out,"%s",str);
}
}
}
谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
既然是C++下,建议这样写。
这样的需求为什么要用c++这么笨重的语言,shell就可以优雅的搞定了
下面语句可以输出line1和line5之间的文本