将矩阵打印为黑白方块,类似于二维码 我在C++中实现了一个微QR代码生成器,我想打印最终的矩阵,它是由一组黑白方块生成的,看起来像一个真正的QR代码。我的矩阵由1和0的整数值组成(这在我的代码中是有原因的,而不是使用布尔值),我想为1的值打印一个黑色正方形,或为0的值打印一个白色正方形
我当前的代码(见下文或测试代码)使用Unicode字符将矩阵打印为黑白方块,类似于二维码 我在C++中实现了一个微QR代码生成器,我想打印最终的矩阵,它是由一组黑白方块生成的,看起来像一个真正的QR代码。我的矩阵由1和0的整数值组成(这在我的代码中是有原因的,而不是使用布尔值),我想为1的值打印一个黑色正方形,或为0的值打印一个白色正方形,c++,arrays,matrix,unicode,qr-code,C++,Arrays,Matrix,Unicode,Qr Code,我当前的代码(见下文或测试代码)使用Unicode字符\u2b1c和\u2b1b,以获得与我想要的结果相似的结果,但它不够方形,无法通过二维码扫描仪进行扫描 代码 #include <iostream> using namespace std; int i,j; int printPixels(int Board[11][11]){ for (i=0;i<11;i++){ for (j=0;j<11;j++) cout << ((Bo
\u2b1c
和\u2b1b
,以获得与我想要的结果相似的结果,但它不够方形,无法通过二维码扫描仪进行扫描
代码
#include <iostream>
using namespace std;
int i,j;
int printPixels(int Board[11][11]){
for (i=0;i<11;i++){
for (j=0;j<11;j++) cout << ((Board[i][j] == 0) ? "\u2b1c" : "\u2b1b");
cout << endl;
}
return 0;
}
int main() {
int a[11][11]={
{1,1,1,1,1,1,1,0,1,0,1},{1,0,0,0,0,0,1,0,1,0,1},
{1,0,1,1,1,0,1,0,1,1,0},{1,0,1,1,1,0,1,0,0,0,0},
{1,0,1,1,1,0,1,0,1,1,1},{1,0,0,0,0,0,1,0,0,0,1},
{1,1,1,1,1,1,1,0,1,1,1},{0,0,0,0,0,0,0,0,0,1,1},
{1,1,0,0,1,1,1,0,0,1,0},{0,0,1,0,1,1,0,0,0,1,0},
{1,1,1,1,1,0,0,1,1,1,1}
};
printPixels(a);
}
#包括
使用名称空间std;
int i,j;
int打印像素(int板[11][11]){
对于(i=0;i一种可能的替代方法是使用空格字符表示0和Unicode字符“FULL BLOCK”(U+2588)█ 代表1
(Board[i][j] == 0) ? " " : "\u2588\u2588";
您可以看到它的外观,其中我还使用了一对每个字符来考虑字体宽高比。我在程序中使用了比完整块和空白更小的块符号,请看这里:
█, 空白,▀, 及▄ 使生成的二维码比仅使用█ 和空白
希望能有帮助!您是否尝试过使用空格和\u2588(可能加倍)之类的?@Bob\uuuu这实际上是一个很好的解决方案,您能否将其作为答案发布,以便我可以接受?