C 语言实现在终端里输出二维码

Mac 环境安装二维码库

bash 复制代码
brew install qrencode
  • 安装过程报权限问题执行以下命令
bash 复制代码
sudo chown -R 用户名 /usr/local/include /usr/local/lib
chmod u+w /usr/local/include /usr/local/lib
c 复制代码
#include <stdio.h>
#include <qrencode.h>

void print_qr_code(QRcode *qrcode) {
    int x, y;
    for (y = 0; y < qrcode->width; y++) {
        for (x = 0; x < qrcode->width; x++) {
            // 打印二维码模块,使用 '██' 表示黑色模块,使用 '  ' 表示白色模块
            if (qrcode->data[y * qrcode->width + x] & 1) {
                printf("██");
            } else {
                printf("  ");
            }
        }
        printf("\n");
    }
}

int main(int argc, char *argv[]) {
    if (argc != 2) {
        fprintf(stderr, "Usage: %s <text>\n", argv[0]);
        return 1;
    }

    const char *text = argv[1];
    QRcode *qrcode = QRcode_encodeString(text, 0, QR_ECLEVEL_L, QR_MODE_8, 1);
    if (qrcode == NULL) {
        fprintf(stderr, "Failed to generate QR code\n");
        return 1;
    }

    print_qr_code(qrcode);
    QRcode_free(qrcode);

    return 0;
}
  • 编译执行
bash 复制代码
# 编译
gcc -o demo demo.c -L/usr/local/opt/qrencode/lib -lqrencode -I/usr/local/opt/qrencode/include
# 执行
./demo "https://blog.csdn.net/weixin_42607526"
  • 输出结果
相关推荐
穗余5 分钟前
Rust——println!后面的感叹号什么意思【宏】
开发语言·python·rust
原来是猿8 分钟前
QT初识【创建项目+对象树】
开发语言·qt
长安第一美人17 分钟前
算能 BM1688 低延迟推流:Qt+WebSocket 直出 H5/HDMI
开发语言·网络·嵌入式硬件·websocket·交互
水饺编程24 分钟前
第5章,[标签 Win32] :获取设备环境的信息
c语言·c++·windows·visual studio
lhbian25 分钟前
C++、C与易语言:编程语言对比解析
c语言·开发语言·c++
꧁细听勿语情꧂26 分钟前
数据结构概念和算法、时间复杂度、空间复杂度引入
c语言·开发语言·数据结构·算法
0xDevNull1 小时前
Java 深度解析:for 循环 vs Stream.forEach 及性能优化指南
java·开发语言·性能优化
小堃学编程1 小时前
【项目实战】基于protobuf的发布订阅式消息队列(4)—— 服务端
c语言·c++·vscode·消息队列·gtest·protobuf·muduo
研☆香1 小时前
聊一聊如何分析js中的数据结构
开发语言·javascript·数据结构
-凌凌漆-1 小时前
【Qt】 QSerialPort::flush()介绍
开发语言·qt