0
Dosya '0', 'x', '5', '1' karakterlerini ve yeni bir satırı içerir.Bir dosyadan hex nasıl okunmalı ve imzasız bir charda saklanır?
QFile file ("config.txt");
QString fileContent;
if (file.open (QIODevice::ReadOnly))
{
QString line;
QTextStream t(&file);
do
{
line = t.readLine();
fileContent += line;
} while (!line.isNull());
file.close();
}
unsigned char m_pduAddress = fileContent.toUInt (0, 16);
Bir dosyadan hex nasıl okunmalı ve imzasız bir karakterde saklanır?
Onaltılık onaltılık dönüştürme işlevlerini kullanıyorum char * işlevini duydum. Sonucu, char * cinsinden değil, imzasız karakterde saklamak zorundayım.
QTextStream t(&file);
int value;
t >> value;
Bu otomatik lider 0x
algılar ve bir onaltılık sayı olarak kalanını okuyun:
Dosya 5 karakter uzunluğunda ("0x51 \ n") veya iki karakter uzunluğunda ("Q \ n") mi demek istiyorsunuz? Tipik dönüşüm işlevleri bir 'const char *' olarak * girdi * alır ve int (veya imzasız uzun ya da her neyse) döndürür. –
Sorunuz nedir? Kodunuz ihtiyacınız olanı yapıyor gibi görünüyor. –
Dosyanız şöyle bir satır içeriyor mu: "0x51 \ n"? doğru görünüyor, ancak daha basit bir şekilde yapabilirsiniz: fileContent = t.readAll(); pduAddress = fileContent.trimmed(). toUInt (0, 16); – Fabio