1
我正在C++中实现一个微型QR代码生成器,我想打印最终矩阵作为一组黑白方块生成,看起来像一个真正的QR码。我的矩阵由整数值1
和0
(在我的代码中有一个原因,而不是使用布尔值),我想打印一个黑色方块的值为1
或白色方块的值为0
。打印矩阵黑色和白色方块,类似于QR码
我当前的代码(见下文或测试here)使用Unicode字符\u2b1c
和\u2b1b
以实现类似于我想要的结果,但它是不够的广场由一个QR码扫描仪进行扫描。
代码
#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);
}
限制
- 我只能用ASCII或Unicode字符做到这一点,没有任何图纸库或包(这个原因是复杂的,但这是我的规格)。
- 我需要的实现是尽可能平台无关,并且看起来足够好,可以用普通的QR码扫描器进行扫描。
- 我希望它看起来像Ideone,它有一个白色的背景,而不是大多数终端通常的黑色背景。
您是否尝试过使用空格和\ u2588(可能加倍),如[这里](https://ideone.com/v6i7cZ)? –
@Bob__这实际上是一个非常好的解决方案,你可以发布它作为答案,所以我可以接受它吗? –