Qt 5中的字符串Base64编码

5

我正在尝试在Qt5中对QString进行base64编码。但是,当我执行QString b64string = base64_encode(src);时,出现了一个错误提示"标识符未找到"

#include <QCoreApplication>
#include <QByteArray>
#include <QBitArray>
#include <QString>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);


    QString src = "Hello";
    QString b64string = base64_encode(src);

    qDebug() << "Encoded string is" << b64string;
    return a.exec();
}

QString base64_encode(QString string){
    QByteArray ba;
    ba.append(string);
    return ba.toBase64();
}

为什么会出现错误?有人能指出我的错误吗?

1
你需要在调用 base64_encode 函数之前的某个地方有一个函数原型。 - Mark Ransom
你的意思是类似于 QString base64_code(QString string); 这样的函数吗?在主函数上面。 - Parth Doshi
2个回答

18

你面临的问题就是Mark Ransom所说的,只需更改函数的顺序或在文件开头编写函数原型即可解决你的问题。但是当我需要 base64 时,通常会这样做:

QString src = "Hello";
src.toUtf8().toBase64();

所以你不需要编写自定义函数。


10

它找不到的标识符是base64_encode 。这是因为它直到文件后面才出现。防止此错误的常规方法是在文件开头或单独的包含头中放置函数原型:

QString base64_encode(QString string);

您也可以重新排列代码,使依赖于定义的任何内容都位于最后,即将main移到最后。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接