Qt 5中String的Base64编码

Par*_*shi 3 c++ base64 qt qt5

我试图QString在Qt5中base64编码.但是,我identifier not found在网上收到错误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();
}
Run Code Online (Sandbox Code Playgroud)

为什么会发生错误?谁能指出我的错误?

Mid*_*hun 13

您面临的问题是Mark Ransom所说的,只需更改函数的顺序或在文件开头编写函数原型来解决您的问题.但是当我想要base 64时,我通常会这样做

QString src = "Hello";
src.toUtf8().toBase64();
Run Code Online (Sandbox Code Playgroud)

所以你不必编写自定义函数.


Mar*_*som 9

它找不到的标识符是base64_encode.这是因为它直到文件的后期才会出现.防止此错误的常用方法是将函数原型放在文件的开头或单独的include头中:

QString base64_encode(QString string);
Run Code Online (Sandbox Code Playgroud)

您也可以重新排列代码,以便根据定义的任何内容最后,即移动main到最后.