【问题标题】:How to load .txt file into separate .html files? c++如何将 .txt 文件加载到单独的 .html 文件中? C++
【发布时间】:2018-12-11 15:08:55
【问题描述】:

我需要读取一个 HTML 文件,然后将它的特定部分分成单独的 HTML 文件。

例如:

<html lang="en">
<head></head>
<body>
<ul>something 123</ul>
<p>something else 123</p>
<p>blabla</p>
<table>example</table>
</body>
</html>

&lt;ul&gt;&lt;/ul&gt; 之间的所有内容都应保存在另一个 HTML 文件中,&lt;p&gt;&lt;/p&gt;. 之间的所有内容相同

我需要使用&lt;fstream&gt; 库,而且我不知道如何使用向量,所以除非有简单的解决方案,否则我可能需要在没有它们的情况下执行此操作。

目前的主要问题是,如何在找到字符串之前读取文件? 我的意思是,例如 - 找到string table = "&lt;table&gt;",然后程序将保存&lt;table&gt; 之后的所有内容,直到找到string end_table = "&lt;/table&gt;"

感谢您的帮助。

【问题讨论】:

  • 没有努力自己尝试这样做,所以很可能这里不会有太多帮助,因为它会被视为“为我做这件事”。你知道怎么打开文件吗?读他们的台词?比较字符串?写文件?这就是你基本上需要的。完成后,如果遇到特定问题,您可以寻求帮助。
  • 好的,谢谢。也许我应该换一种说法——我只想知道如何使用 ifstream 读取文件,直到找到那些特殊的字符串。
  • 改进标签、内容、代码格式。

标签: html c++ html-parsing


【解决方案1】:

您可以使用find 来定位正文的开始和结束标记:

#include <iostream>
#include <string>

using namespace std;

int main(int argc, char* argv[]) {
   string line = "some line with <body> in it";
   string bodytag = "<body>";

   if(line.find(bodytag) != string::npos) {
     cout << "found" << endl;
   }

   return 0;
 }

然后从文件中读取行直到找到&lt;body&gt; 标签并输出它们直到找到&lt;/body&gt; 标签。如果需要保存的内容出现在同一行的开始正文标记之后或结束正文标记之前,您可能需要对此进行修改。您的输入不包含此内容,因此这可能不是问题。

【讨论】:

  • 谢谢,帮了大忙! :)
猜你喜欢
  • 1970-01-01
  • 2019-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-26
  • 1970-01-01
相关资源
最近更新 更多