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"
  • 输出结果
相关推荐
1024奇点6 小时前
【仓颉语言入门 · 第二篇 第 22 课】
开发语言·ide·开源
Warren2Lynch6 小时前
C4 模型详解:利用 Visual Paradigm 可视化软件架构的综合指南
开发语言·uml
Knight_AL7 小时前
Java 文件下载时文件名中的 `#` 被转换成 `%23`?一次 URL 编码与解码问题排查
java·开发语言
FRing038 小时前
vue2干货总结2(v-bind、v-for、v-model、指令修饰符、v-bind操作class和style)
开发语言·前端·vue.js·vue2
蹊黎8 小时前
Linux 下用 C 语言实现进度条
linux·c语言·单片机
by209998 小时前
C++ 智能指针的所有权与使用
开发语言·c++·经验分享
砚底藏山河8 小时前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
IT召唤狮8 小时前
开源企业级零信任项目Pangolin,零信任能挡住PHP核弹漏洞吗?
开发语言·开源·php
知已难寻8 小时前
03 · OpenStack的计算管理 Nova
运维·服务器·开发语言·云原生·云计算·openstack·开源软件
Rover Ramble9 小时前
C++ 用互斥锁实现读写锁
开发语言·c++