2016-03-23 26 views
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:

+0

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. –

+3

Sorunuz nedir? Kodunuz ihtiyacınız olanı yapıyor gibi görünüyor. –

+0

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

cevap

2

doğrudan QTextStream değeri okuyabilirsiniz.

İlgili konular