如果你认真阅读《C++编程,响应用户输入》、《C++编程入门——实现猜数字游戏》了这两篇文章,并且认真的一行一行敲了代码,那你已经掌握了标准输入输出流的常见使用方法。本篇文章将在前两篇文章的基础上做一点有实际用途的程序——生成HTML网页。很久以前做过一个项目,用程序加载XML里面的数据,用这些数据生成HTML静态页,放到Web服务器上就可以被用户访问了,这样可以节约服务器的算力,增加服务器并发数。

作为入门教程肯定不能弄得太复杂,所以本篇文章将进行简化,简化到初学者也能完成的程度。

准备工程

在VS中使用文件菜单创建控制台应用工程,工程名为“HtmlGenerator”。

创建完成后是这样的:

输入代码

把HtmlGenerator.cpp的内容改成下面这个样子,依然推荐手打,不要复制粘贴~~

#include <iostream>

int main()
{
	const char* pageTitle = "C++简介";
	const char* p0 =
		"C++(c plus plus)是一种计算机高级程序设计语言,"
		"由C语言扩展升级而产生 [17],最早于1979年由"
		"本贾尼·斯特劳斯特卢普在AT&T贝尔工作室研发。";
	const char* p1 =
		"C++既可以进行C语言的过程化程序设计,又可以进行以"
		"抽象数据类型为特点的基于对象的程序设计,还可以进"
		"行以继承和多态为特点的面向对象的程序设计。C++擅长"
		"面向对象程序设计的同时,还可以进行基于过程的程序设"
		"计。 C++几乎可以创建任何类型的程序:游戏、设备驱动"
		"程序、HPC、云、桌面、嵌入式和移动应用等。 甚至用于"
		"其他编程语言的库和编译器也使用C++编写。";
	std::cout
		<< "<html>\n"
		<< "<header>\n"
		<< "<title>" << pageTitle << "</title>\n"
		<< "</header>\n"
		<< "<body>\n"
		<< "<h1>" << pageTitle << "</h1>\n"
		<< "<p>" << p0 << "</p0>\n"
		<< "<p>" << p1 << "</p0>\n"
		<< "</body>\n"
		<< "</html>";
}

运行程序

按“F5”或通过菜单“调试->开始调试”启动程序,程序会把生成的HTML代码输出到控制台,如下图:

保存HTML文件

把生成的HTML代码复制出来,保存成HTML文件就可以了。复制代码的方法:

  1. 选中全部HTML代码
  2. 左键点击控制台窗口左上角的图标
  3. 在弹出的菜单中点击复制

参考下面的动图:

保存成HTML格式的方法:

  1. 打开记事本程序
  2. 把刚才复制的HTML代码粘贴进去
  3. 用文件菜单保存成1.html

参考下面的动图:

查看网页

经过上面的步骤,就得到了1.html这个文件,双击打开1.html就能看到效果了。

涨知识 

字符串

代码第5行声明了变量“pageTitle”,并把它的值初始化成了一个字符串常量。当需要把一个字符串常量赋值给变量时,不能写成“char* pageTitle = "abcd123"”,而应该用const关键字对变量进行修饰,表示这是一个常量。

类型名“char*”中的星号表示声明的是一个指针。整个第5行的意思是:声明一个名为"pageTitle"的字符串指针,并让它指向保存“C++简介”这行字符的内存区域。实质上pageTitle变量保存的是内存区域的起始地址,而并不是“C++简介”这行文字。“C++简介”这行文字保存在内存中,具体是内存中的哪个位置是由操作系统决定的,程序开始运行之前都不知道具体的保存位置。

其实所有的指针保存的都是内存地址,即“指针 = 内存地址”。

程序第6行的字符串太长,所以在代码中分成了3段,写成了3行。这种写法在C++中是允许的,长字符串分段书写的方法是"字符串1"+分隔+“字符串2”。其中分隔可以省略,如果不省略则只能是空白字符,不能是“abc123”等可见字符。

更多推荐