我有一个用 C++ 编写的程序,它使用矩阵,我想将它们打印出来。在程序中,矩阵的类型要么是整数,要么是无符号字符。这是我现在用来打印的代码。
template<class T>
void print_matrix(const int& num_rows, const int& num_cols, T** M)
{
for (int row = 0; row < num_rows; row++) {
for (int col = 0; col < num_cols; col++) {
std::cout << std::setw(5) << M[row][col];
}
std::cout << std::endl;
}
}
我的问题是,对于 unsigned char 矩阵,这些值不会被解释为数字。例如,对于零矩阵,输出不会显示在控制台上。有什么方法可以使用模板化方法中的类型信息来确定如何正确打印这两种类型的矩阵?我是否必须求助于使用具有正确格式字符串的 printf 的两种不同类型的打印方法?