реклама на сайте
подробности

 
 
> ios_base::binary, ввод-вывод двоичных данных
demiurg_spb
сообщение Jan 20 2009, 14:27
Сообщение #1


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Подскажите пожалуйста в чём грабли.
Приведённая ниже программка не работает,
а если я сам собираю float по байтику через bin_file.get(ch), или через bin_file.readsome(var,sizeof(float)) то всё хорошо.
Такое впечатление, что текущая позиция чтения не инкрементируется...
Может надо как-то задать ширину выравнивая или ещё чего.
Спасибо!

Код
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <conio>

using namespace std;

int main(int argc, char* argv[])
{
    fstream bin_file(argv[1],  ios_base::in  | ios_base::binary);

    if (bin_file==NULL)
    {
        cout << "Can't open input file!" << endl;
        return -1;
    }

    for (int i=0; i<8; ++i)
    {
        float k1;

        bin_file >> k1;

        cout << "k1 = "  << k1 << endl;
    }

    bin_file.close();
    cout << "Press any key..." << endl;
    getch();
    return 0;
}


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 04:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.01334 секунд с 7
ELECTRONIX ©2004-2016