将矩阵打印为黑白方块,类似于二维码 我在C++中实现了一个微QR代码生成器,我想打印最终的矩阵,它是由一组黑白方块生成的,看起来像一个真正的QR代码。我的矩阵由1和0的整数值组成(这在我的代码中是有原因的,而不是使用布尔值),我想为1的值打印一个黑色正方形,或为0的值打印一个白色正方形

将矩阵打印为黑白方块,类似于二维码 我在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

我当前的代码(见下文或测试代码)使用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 << ((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这实际上是一个很好的解决方案,您能否将其作为答案发布,以便我可以接受?