⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 html.cpp

📁 CE5.4英文源码,打造自己的CE 与大家分享一下.
💻 CPP
字号:
// C++ By Example, Chapter 9
// Generating XML/HTML, etc
#include "xml.h"
using namespace std;

Tag bold("BOLD");
Tag italic("ITALIC");
Tag link_tag("A");
Tag para("P");
Tag head_tag("");


class HTMLDoc: public XMLDoc {
public:
   void open(string name, string doc_title="", string clr="#FFFFFF")
   {
     if (name.find(".") == string::npos) name += ".htm";
     XMLDoc::open(name);
     if (doc_title=="") doc_title = name;
     
     push(Tag("HTML",false));
      push(Tag("HEAD"));
      push(Tag("TITLE"));
      XMLDoc::outs(doc_title);
      XMLDoc::outs("\n");
 
      Tag body_tag("BODY",false);
      body_tag.add_attrib("bgcolor",clr);
      push(body_tag);
      XMLDoc::outs("\n");
   }

   HTMLDoc(string name, string doc_title="", string clr="#FFFFFF")
   {
     open(name,doc_title,clr);
   }

   void outs(const char *str)  // override
   {
   // calls original method to do output
     if (strchr(str,'\n') != NULL) {
	  char buff[256];
	  strcpy(buff,str);
      for(char *t = strtok(buff,"\n");  t != NULL; t = strtok(NULL,"\n"))
      { 
        push(para);
        XMLDoc::outs(t);  
        XMLDoc::outs("\n");
      }
     } else XMLDoc::outs(str);
   }
};


Tag& head(int level = 0)
{ 
   head_tag.name("H" + int2str(level));
   return head_tag.set(level > 0);
}

Tag& link(string fname)
{
   link_tag.clear();
   link_tag.add_attrib("HREF",fname);
   return link_tag;
}

void exercise()
{
  int n = 58;
  HTMLDoc doc("first","An introduction");
  doc << head(1) << "Here is a Title";
  doc << "There have been " << n << " visitors\n";
  doc << bold << "whatever\n";
  doc.close();
}  

int main(int argc, char **argv)
{
 exercise();
 return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -