Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > использование STL


Автор: Jcs 5.8.2004, 07:44
Извиняюсь за глупый вопрос, но у меня не получается вывести в файл бинарные данные - валятся в текстовом виде.
Код
std::ofstream my_fstream("data.bin",std::ios_base::binary);
int a = 1024;
my_fstream << a;

На выходе файл, как я уже и говорил - текстовый. Заранее спасибо.

Автор: Олег М 5.8.2004, 08:56
попробуй my_fstream.write((char *)a,sizeof(int))

Автор: achmed 5.8.2004, 11:26
вот как надо
Код
my_fstream.write((char *)&a,sizeof(int))

Автор: Jcs 6.8.2004, 06:29
Спасибо за ответ. А можно ли узнать размер файла, если открыт файловый поток для чтения, используя ifstream?

Автор: versus 21.3.2005, 22:22
можно:

Код

    ifstream is("filename.ext", ios::in | ios::binary);
    if (!is)
    {
    cerr << "Failed to open filename.ext" << endl;
    exit(1);
    }

    n1 = is.tellg(); 
    is.seekg(0, ios::end);
    n2 = is.tellg();
    is.close();

    cout << "File size: " << (n2 - n1) << " bytes." << endl;


упс, забыл на дату посмотреть smile

Автор: Jcs 21.3.2005, 22:28
Все равно спасибо, очень кстати.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)