博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
data filter 去掉HTML文件中的所有标记
阅读量:6048 次
发布时间:2019-06-20

本文共 2437 字,大约阅读时间需要 8 分钟。

编写一个C++程序来读取文件,过滤掉所有的标记,将过滤掉标记后的内容输出到一个新文件中。

1. 从文件中读取一个字符

2. 确定字符是否是HTML标记的一部分

3. 打印出所有不是HTML标记的字符

/* -------------------------------------------- * This program reads a html file, and writes * the text without the tags to a new file. * --------------------------------------------*/#include 
// Required for cin, cout, cerr#include
// Required for ifstream, ofstream#include
// Required for string#include
// Required for exitusing namespace std;int main(){ // Declare objects char ch; bool text_state(true); string infile, outfile; ifstream html; ofstream htmltext; // Prompt user for name of input file cout << "Enter the name of the input file : \n( *.*, such as : demo.html ) \n" ; cout << "Make sure the file is under current project file ! \n" ; // My English is poor ~~ cin >> infile; cout<< "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" ; // Prompt user for name of output file cout << "Enter the name of the output file : " ; cin >> outfile; // Open files html.open(infile.c_str()); if(html.fail()) { cout<< "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" ; cerr << "Error opening input file" << endl ; exit(1); } htmltext.open(outfile.c_str()); // Read first character from html file html.get(ch); while(!html.eof()) { // Check state if(text_state) { if(ch == '<') // Beginning of a tag text_state = false; // Change states else htmltext << ch; // Still text, write to the file } else { // Command state, no output required if(ch == '>') // End of tag text_state = true; // Change states } // Read next character from html file html.get(ch); } html.close(); htmltext.close(); cout<< "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" ; cout << "Success transformed ! \n" ; cout << "Look for " << outfile << " in current file.\n" ; cout<< "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" ; return 0;}
之后就可以拿个HTML文件试试了,不过这个程序只是把所有标记过滤掉,还有待完善。如果非标记字符有很多无关内容,效果就差强人意。建议用典型的HTML文件测试,如:

我的第一个 HTML 页面

body 元素的内容会显示在浏览器中。

title 元素的内容会显示在浏览器的标题栏中。

转载于:https://www.cnblogs.com/Genesis2018/p/8304749.html

你可能感兴趣的文章
我的Android进阶之旅------>adbd cannot run as root in production builds 的解决方法
查看>>
Nginx http升级到https
查看>>
关于在RK3288上安装Opencv的方法
查看>>
7.Java集合-Arrays类实现原理及源码分析
查看>>
[POI2008]Triangles
查看>>
2016开发一个app需要多少钱?app开发需要哪些成本-app开发问题汇总-广州达到信息...
查看>>
程序找不到jvm的解决方法
查看>>
Java中Volatile的理解
查看>>
c++primer page 249 answer
查看>>
04单例模式Singleton
查看>>
SSE图像算法优化系列六:OpenCv关于灰度积分图的SSE代码学习和改进。
查看>>
找考场
查看>>
暑假第一周进度总结(2018.7.9-2018.7.15)
查看>>
数据库程序接口——JDBC——功能第一篇——第一个程序
查看>>
NSOperation简单使用01
查看>>
javascript获取事件源对象和产生事件的对象
查看>>
iOS控件之UITextView
查看>>
第三次会议
查看>>
UNIX的套接口(Socket)编程简介
查看>>
CSF 中的应用程序请求路由
查看>>