小编Jam*_*mes的帖子

Qt C++ QString到QByteArray转换

我创建了一个加密/解密程序,加密时我将加密的QByteArray存储在一个文本文件中.

在尝试解密时,我检索它然后将其放入解密方法,问题是我需要一种方法将其转换为QByteArray 而不更改格式,否则它将无法正确解密.我的意思是,如果文件给我一个1234的加密值,我将1234.toLatin1()它转换为QByteArray,它改变了值,解密不起作用.有什么建议?

我的代码:

QFile file(filename);
    QString encrypted;
    QString content;

    if (file.open(QIODevice::ReadOnly)) {
        QTextStream stream( &file );
        content = stream.readAll();
    }

    encrypted = content.replace("\n", "");

    qDebug() << encrypted; // Returns correct encrypted value

    QByteArray a;
    a += encrypted;

    qDebug() << "2 " + a; // Returns different value than previous qDebug()

    QByteArray decrypted = crypto.Decrypt(a, key);
    return decrypted;
Run Code Online (Sandbox Code Playgroud)

c++ qstring qt qbytearray

21
推荐指数
2
解决办法
5万
查看次数

程序在for循环中跳过if语句

我正在尝试使用函数更新客户端详细信息.但它不起作用.我调试程序,我意识到它永远不会进入if.我不知道为什么?

这是功能:

def UpdateClient(self,id,cnp,name,adress):
    for i in range (len(self.clients.get_all())):
        if self.clients.get_all()[i].get_id==id:
            self.clients.get_all()[i].set_name(name)
            self.clients.get_all()[i].set_cnp(cnp)
            self.clients.get_all()[i].set_adress(adress)
Run Code Online (Sandbox Code Playgroud)

当我尝试更新客户端,我给了id,name,cnp,和adress,但是当我打印的清单不会发生任何变化.我无法进入if调试器,因为它说它们永远不会相等.为什么?

python python-3.x

-3
推荐指数
1
解决办法
140
查看次数

标签 统计

c++ ×1

python ×1

python-3.x ×1

qbytearray ×1

qstring ×1

qt ×1