C 如何正确编码数字QR码?
我正在使用。C 如何正确编码数字QR码?,c,encoding,qr-code,C,Encoding,Qr Code,我正在使用。 我想要一个带有版本1(21x21)和ECC级别H的二维码。据我所知,我可以有17个数字。因此,我: QRcode *result; QRinput *input = QRinput_new2(1, QR_ECLEVEL_H); unsigned char *data = new unsigned char[17]; for(int i = 0; i < 17; i++) { data[i] = 0; } QRinput_append(input, QR_MODE_N
我想要一个带有版本1(21x21)和ECC级别H的二维码。据我所知,我可以有17个数字。因此,我:
QRcode *result;
QRinput *input = QRinput_new2(1, QR_ECLEVEL_H);
unsigned char *data = new unsigned char[17];
for(int i = 0; i < 17; i++) {
data[i] = 0;
}
QRinput_append(input, QR_MODE_NUM, 17, data);
result = QRcode_encodeInput(input);
int idx = 0;
printf("%d\n", result->width);
for(int i = 0; i < result->width; i++) {
for(int j = 0; j < result->width; j++) {
if(result->data[idx] & 1) {
printf("%d", 1);
} else {
printf("%d", 0);
}
idx++;
}
printf("\n");
}
QRcode*结果;
QRinput*input=QRinput\U new2(1,QR\U ECLEVEL\U H);
无符号字符*数据=新的无符号字符[17];
对于(int i=0;i<17;i++){
数据[i]=0;
}
QRinput_append(输入,QR_模式_编号,17,数据);
结果=QRcode\U编码输入(输入);
int-idx=0;
printf(“%d\n”,结果->宽度);
对于(int i=0;iwidth;i++){
对于(int j=0;jwidth;j++){
如果(结果->数据[idx]&1){
printf(“%d”,1);
}否则{
printf(“%d”,0);
}
idx++;
}
printf(“\n”);
}
但无论我的数据是什么,我的程序都会返回相同的输出。我在这里遗漏了什么?我向github提交了一个问题,并很快得到了答案
这里的问题是我的数据初始化:
unsigned char *data = new unsigned char[17];
for(int i = 0; i < 17; i++) {
data[i] = 0;
}
unsigned char*data=新的unsigned char[17];
对于(int i=0;i<17;i++){
数据[i]=0;
}
应该是:
unsigned char *data = new unsigned char[17];
for(int i = 0; i < 17; i++) {
data[i] = '0'; //here
}
unsigned char*data=新的unsigned char[17];
对于(int i=0;i<17;i++){
数据[i]=“0”;//此处
}