如何用c++生成html5文件并进行编程

有时候根据项目需要,在一个c++项目里面,需要对某些结果保存为.htm或者.html文件,并根据需要,在visual studio2013/2015的c++环境下对该.html文件进行编程。这样做,一方面为了输出结果需要,一方面便于浏览器打开。

首先

建立3个.html文件,并设置好属性:

ofstream totalHtml,passHtml,failHtml;
totalHtml.open(imgsSavePath + "/total.html", ios::out | ios::trunc);// 文件若不存在,就新建;若存在,则覆盖
passHtml.open(imgsSavePath + "/pass.html", ios::out | ios::trunc);
failHtml.open(imgsSavePath + "/fail.html", ios::out | ios::trunc);
然后

往3个.html文件里面写入html程序,这里要注意:
1、所有的html程序全部在“”里面;
2、如果html程序里面需要用到“,此时注意转义字符“\”的使用。

//pass.html和fail.html文件头处理及相关类的样式定义
	passHtml << "<head>";
	passHtml << "<meta http-equiv=\"Content-type\" content=\"text/css;charset=utf-8\"/>";
	passHtml << "<title>Pass-Components</title>";
	passHtml << "<style type=\"text/css\" media=\"screen\">";
	passHtml << "body{font-family:Arial;font-size:small;text-align:Center;color:Black;background:White;}";
	passHtml << "table{margin-left:auto;margin-right:auto;text-align:center;}";
	passHtml << ".step_row_pass{text-align:center;background-color:rgb(0,255,0);vertical-align:middle;border:Black;padding:1%;}";
	passHtml << "</style></head>";
	passHtml << "<h3 style = \"background-color:rgb(0,255,0);text-align:center\">Passed Components List</h3>";
	passHtml << "<table width=\"50%\"><tbody>";

	failHtml << "<head>";
	failHtml << "<meta http-equiv=\"Content-type\" content=\"text/css;charset=utf-8\"/>";
	failHtml << "<title>Fail-Components</title>";
	failHtml << "<style type=\"text/css\" media=\"screen\">";
	failHtml << "body{font-family:Arial;font-size:small;text-align:Center;color:Black;background:White;}";
	failHtml << "table{margin-left:auto;margin-right:auto;text-align:center;}";
	failHtml << ".step_row_fail{text-align:center;color:black;background-color:rgb(255,128,128);vertical-align:middle;border:Silver;padding:1%;}";
	failHtml << "</style></head>";
	failHtml << "<h3 style =\"background-color:rgb(255,128,128);text-align:center\">Fault Components List</h3>";
	failHtml << "<table width=\"50%\"><tbody>";
再然后

就是对3个.html文件的“table”进行一行行增加,这里我用的是while循环:

	while (mImagesListRead.good() && !mImagesListRead.eof())  //循环读取图像序列
	{
	...
		failHtml << "<tr><td width=\"10%\" class=\"step_row_fail\">" << mImageId << "</td>";
		failHtml<<"<td width=\"10%\" class=\"step_row_fail\">fault</td>";
		failHtml << "<td class=\"step_row_fail\"><img src=\"./FaultImgs/"<< mImageId << ".png\"/> </td></tr>";
		faultnum++;
		...
	}
最后注意收尾
totalHtml << "<title>Result</title>";
totalHtml << "<h3 style=\"background-color:gray;color:blue;text-align:center\">Analysis Results</h3><hr/>";
totalHtml << "<p width=\"50%\" style=\"background-color:yellow;text-align:center\">Components Number: " << mImagesCount << "</p><hr/>";
totalHtml << "<base target=\"_blank\" /> <p style = \"background-color:rgb(0,255,0);text-align:center\">";
totalHtml<<"<a href =\"pass.html\"><b>Pass</b>-Components</a>:  " << mImagesCount - faultnum << "</p><hr/>";
totalHtml << "<p style =\"background-color:rgb(255,128,128);text-align:center\">";
totalHtml<<"<a href =\"fail.html\"><b>Fail</b>-Components</a>:  " << faultnum << "</p>";
totalHtml.close();

passHtml << "</tbody></table>";
passHtml.close();

failHtml << "</tbody></table>";
failHtml.close();
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本iOSC/iOSC++适用于iPhone 5S、iPad 4。 经测试,本软件可以编译 复杂命令行程序、运用了各种Framework的IPA程序、cmake、SDL2库、运用了SDL2的程序、同时运用SDL2和UIKit的程序、纯算法程序。 1、请先安装必须软件包,从这个汇总贴子里下载:http://bbs.weiphone.com/read-htm-tid-5259660.html 如果您觉得不放心,这些软件包可以在code.google.com各自的项目里下载 (注:安装方法:) (先在Cydia中安装Debian Packager) (然后在终端模拟器或SSH中进入DEB文件夹以root权限运行dpkg -i *) 2、然后请用Mac OS安装Xcode,提取/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/到您的iPhone5s或者iPad4上。 3、在Cydia中安装class dump和classdump-dyld,这个工具可以在你需要Private Framework的头文件时,为你反编译出可用的头文件。(Private Framework本身是不提供头文件的) 4、最后把您需要的可执行文件复制到/usr/bin目录并设置可执行权限。 在iosc文件夹和iosc++文件夹中,各个版本目录下文件说明: main.cpp ——此版本源代码 a.out,iosc,iosc++ ——此版本二进制可执行文件 config.txt ——此版本最佳配置文件。 注:配置文件一般自动生成。如果 希望iosc/iosc++尽量不提问,可以 把这个config.txt复制 到/var/mobile/.ioscpp/config.txt 5、iosc、iosc++在V1.3之后有一次渺小而重要的更新,运用此更新,用户第一次有把握在iPhone5S、iPad4设备上从复杂源代码搭建实用工具,例如cmake、SDL2。此更新保证开发者在iOS 7上可以编译任何C/C++代码。因此,自V1.3以后的代码暂不开源。 6、利用theos可以从源代码编译iOS IPA程序。貌似不支持Storyboard。 !注意!如果需要安装产生的IPA,需要AppSync补丁,因为没签名…… (编译方法:) (从原帖子下载整个压缩包,仅提取其中的theos文件夹) (从本目录安装好iosc/iosc++) (把本目录中的ipa.nic.zip等nic.zip文件拷贝到theos/templates/iphone/) (利用Nic建立项目,进入项目文件夹用make编译) 有的Nic项目是需要用iosc和iosc++才可以编译的,有的不用。这个选择一般是自动的。
[本资源仅仅是修复旧版中的下载链接!下过旧版的朋友只需要读一下本页面上的说明即可] 本iOSC/iOSC++适用于iPhone 5S、iPad 4。 经测试,本软件可以编译 复杂命令行程序、运用了各种Framework的IPA程序、cmake、SDL2库、运用了SDL2的程序、同时运用SDL2和UIKit的程序、纯算法程序。 0、成分: 除了基础包下载地址之外 (太大了,传不上来), 有额外的C++辅助编译器、构建好的IPA NIC包、SDL NIC包,方便大家构建项目。 1、原来的基础包下载地址坏掉了,更新一下。而且之前说明的时候,漏掉了一个步骤。 下载 iphonedev_v3_ios61.tgz (304M) 百度云下载地址1: http://pan.baidu.com/s/1jGt5Xfo 百度云下载地址2: http://pan.baidu.com/s/1GiIIi 密码:1skf iphonedev_v3_ios61.tgz 包括以下软件包及其依赖包 adv-cmds 119-5 finger, fingerd, last, lsvfs, md, ps apt 1:0-23 any advanced packaging tool from Debian coreutils 8.12-12p core set of Unix shell utilities from GNU curl 7.33.0-8 flexible multi-protocol file transfers gdb 1821 debugger + debugserver 300.2 for iOS git 1.5.6.rc0-2p fast content-addressable filesystem iphone-gcc 4.2-20080604-1-8p a native c compiler on the phone ldid 1:1.1.1 pseudo-codesign Mach-O files make 3.81-2p dependency-based build environments mobile substrate 0.9.5000 powerful code insertion platform mobileterminal-applesdk 520-2 A Terminal emulator for iOS org.coolstar.cctools 836-1-2 tools to work with mach-o files org.coolstar.ld64 136 linker for building on iOS org.coolstar.llvm-clang 3.3-3 LLVM, Clang, and Compiler-RT 3.3 for iOS org.coolstar.perl 5.14.4 perl for iOS subversion 1.4.6-2p modern version control system uikittools 1.1.8 UIKit/GraphicsServices command line access vim 7.1-4 vim with multi-byte support wget 1.11-3p simple HTTP file transfer client 请先安装必须软件包,从这个汇总贴子里下载的:http://bbs.weiphone.com/read-htm-tid-5259660.html 如果您觉得不放心,这些软件包可以在code.google.com各自的项目里下载 2、安装方法:[有变更!!!] (1)先在Cydia中安装Debian Packager (2) 用 ssh 登录 iPhone 或 iPad 为 root 如果之前安装过这个帖子里的同一个包,只是没配置好,不用重装(除非你配置乱了,抱歉我之前忘了说怎么配置了) 如果曾经安装 iphone-gcc, perl … 包,请先卸载 apt-get remove apt-get remove iphone-gcc odcctools apt-get remove perl net.howett.theos (3) 解压及安装 <1>安装deb cd /var/root/ tar xzvf iphonedev_v3_ios61.tgz cd /var/root/iphonedev/DEBS dpkg -i *.deb <2>修改目录名称、建立符号链 cd /var/root/iphonedev/ mv theos /var/ cd /var/theos/makefiles/targets ln -s Darwin-arm Darwin-arm64 cd /var/theos/makefiles/platform ln -s Darwin-arm Darwin-arm64 <3>注销 killall SpringBoard 3、然后请用Mac OS安装Xcode,提取/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/到您的iPhone5s或者iPad4上。 4、在Cydia中安装class dump和classdump-dyld,这个工具可以在你需要Private Framework的头文件时,为你反编译出可用的头文件。(Private Framework本身是不提供头文件的) 5、最后把您需要的可执行文件复制到/usr/bin目录并设置可执行权限。 在iosc文件夹和iosc++文件夹中,各个版本目录下文件说明: main.cpp ——此版本源代码 a.out,iosc,iosc++ ——此版本二进制可执行文件 config.txt ——此版本最佳配置文件。 注:配置文件一般自动生成。如果 希望iosc/iosc++尽量不提问,可以 把这个config.txt复制 到/var/mobile/.ioscpp/config.txt 6、iosc、iosc++在V1.3之后有一次渺小而重要的更新,尽管还有已知的Bug,但是运用此更新,用户第一次有把握在iPhone5S、iPad4设备上从复杂源代码搭建实用工具,例如cmake、SDL2。此更新保证开发者在iOS 7上可以编译任何C/C++代码。因此,自V1.3以后的代码暂不开源。 7、利用theos可以从源代码编译iOS IPA程序。貌似不支持Storyboard。 !注意!如果需要安装产生的IPA,需要AppSync补丁,因为没签名…… (编译方法:) (从原帖子下载整个压缩包,仅提取其中的theos文件夹) (从本目录安装好iosc/iosc++) (把本目录中的ipa.nic.zip等nic.zip文件拷贝到theos/templates/iphone/) (利用Nic建立项目,进入项目文件夹用make编译) 有的Nic项目是需要用iosc和iosc++才可以编译的,有的不用。这个选择一般是自动的。
Effective C++(编程的50个细节) Effective C++(编程的50个细节)着重讲解了编写C++程序应该注意的50个细节问题,书中的每一条准则描述了一个编写出更好的C++的方式,每一个条款的背后都有具体范例支持,书中讲的都是C++编程技巧和注意事项,很多都是自己平时不太注意但又很重要的内容,绝对经典,作者Scott Meyers是全世界最知名的C++软件开发专家之一。 电子书PDF格式下载:http://www.yanyulin.info/pages/2013/11/effective.html 1、从C转向C++ 条款1:尽量用CONST和INLINE而不用#DEFINE 条款2:尽量用而不用 条款3:尽量用NEW和DELETE而不用MALLOC和FREE 条款4:尽量使用C++风格的注释 2、内存管理 条款5:对应的NEW和DELETE要采用相同的形式 条款6:析构函数里对指针成员调用DELETE 条款7:预先准备好内存不够的情况 条款8:写OPERATOR NEW与OPERATOR DELETE要遵循常规 条款9:避免隐藏标准形式的NEW 条款10:如果写了OPERATOR NEW就要同时写OPERATOR DELETE 条款11:为需要动态分配内存的类声明一个拷贝构造函数和一个赋值函数 条款12:尽量使用初始化而不要在构造函数里赋值 条款13:初始化列表中成员列出顺序和它们在类中的声明顺序相同 条款14:确定基类有虚析构函数 条款15:让OPERATOR=返回*THIS的引用 条款16:在OPERATOR=中对所有数据成员赋值 条款17:在OPERATOR=中检查给自已赋值的情况 3、类和函数:设计与声明 条款18:争取使类的接口完整并且最小 条款19:分清成员函数,非成员函数和友元函数 条款20:避免PUBLIC接口出现数据成员 条款21:尽可能使用CONST 条款22:尽量用传引用而不用传值 条款23:必须返回一个对象时不要试图返回一个引用 条款24:在函数重载与设定参数默认值间慎重选择 条款25:避免对指针与数字类型的重载 条款26:当心潜在的二义性 条款27:如果不想使用隐式生成的函数要显示的禁止它 条款28:划分全局名字空间 4、类和函数:实现 条款29:避免返回内部数据的句柄 条款30:避免这样的成员函数,其返回值是指向成员的非CONST指针或引用 条款31:千万不要返回局部对象的引用,也不要返回函数内部用NEW初始化的指针 条款32:尽可能推迟变量的定义 条款33:明智的使用INLINE 条款34:将文件间的编译依赖性阡至最低 5、继承与面向对象设计 条款35:使公有继承体现是一个的函义 条款36:区分接口继承与实现继承 条款37:绝不要重新定义继承而来的非虚函数 条款38:绝不要重新定义继承而来的缺省参数值 条款39:避免向下转换继承层次 条款40:通过分层来体现有一个和用...来实现 条款41:区分继承和模板 条款42:明智的使用私有继承 条款43:明智的使用多继承 条款44:说你想说的,理解你说的 6、杂项 条款45:弄清C++在幕后为你所写、所调用的函数 条款46:宁可编译与链接时出错,也不要运行时出错 条款47:确保非局部静态对象在使用前被初始化 条款48:重视编译器警告 条款49:熟悉标准库 条款50:提高对C++的认识

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值