Добрый день, форумчане! Не могу решить задачу и никак не дам ей ладу. Есть типизированный файл. Структура известна - записаны структуры с полями:
struct POSITION_T
{
double latitude; // широта
double longitude; // долгота
};
Пытался читать как и стандартными средствами с++, так и средствами Qt. При попытке прочитать с помощью ifstream, то не могу открыть файл, а при попытке окрыть с помощью QFile, то получаю непонятные данные:
2.04666e+223
-5.12741e-107
Вот слот для загрузки файла:
QString fname_qstr = QFileDialog::getOpenFileName(this, tr("Открыть карту"), NULL, tr("map (*.*)"));
QByteArray fname_ba = fname_qstr.toAscii();
char *fname_chr = fname_ba.data();
std::ifstream file(fname_chr, std::ios::binary);
if(file.is_open())
qDebug() << tr("Загрузка карты");
else
qDebug() << tr("Не удалось открыть файл: ") << fname_chr;
POSITION_T position = {0.0, 0.0};
file >> position.latitude;
file >> position.longitude;
qDebug() << position.latitude;
qDebug() << position.longitude;
file.close();
QFile File(fname_qstr);
if(!File.open(QIODevice::ReadOnly))
qDebug() << tr("Не удалось открыть файл: ") << fname_chr;
else
qDebug() << tr("Загрузка карты");
QDataStream data(&File);
data >> position.latitude;
data >> position.longitude;
qDebug() << position.latitude;
qDebug() << position.longitude;
File.close();