template <class Type, int Row, int Col>
bool PrintTableHtml(const Type (&arr)[Row][Col], const std::string &htmlfile, const std::string &tableInfo){
if(arr == NULL){
return false;
}
//cout << Row << endl << Col << endl;
ofstream fout(htmlfile.c_str());
if(!fout){
cerr << "PrintTableHtml: Can't open file: " << htmlfile << endl;
return false;
}
fout << "<html>" << endl;
fout << "<body>\n<table border=2>" << endl;
fout << "<tr>\n<td>" << tableInfo << "</td>" << endl;
for(int j = 0; j < Col; j ++){
fout << "<td>" << j + 1 << "</td>";
}
fout << "</tr>" << endl;
for(int i = 0; i < Row; i ++){
fout << "<tr>\n<td>" << i + 1 << "</td>" << endl;
for(int j = 0; j < Col; j ++){
if(i == j){
fout << "<td> - </td>";
continue;
}
Type resTmp = arr[i][j];
if(i > j){
resTmp = arr[j][i];
}
if(strcmp(typeid(resTmp).name(), "double") == 0){
//小数点后面保留3位
fout << setiosflags(ios::fixed) << setprecision(3);
}
fout << "<td>" << resTmp << "</td>";
}
fout << "</tr>" << endl;
}
fout << "</table>\n</body>\n</html>" << endl;
fout.close();
return true;
}
将二维数组打印成table的模板函数
最新推荐文章于 2023-03-19 20:48:02 发布