Re: iostream - BYTE array
why when i change the code from std::cin to read from file
c:/test2.xml I got error
=======================
typedef unsigned char BYTE;
std::ofstream file1("c:/test2.xml");
// read from std::cin
std::vector<BYTE> bytes(
(std::istreambuf_iterator<char>(file1))
, (std::istreambuf_iterator<char>())
);
if(bytes.empty())
; // no bytes have been read
BYTE const* pbBinary = &bytes[0];
===========================
1>d:\snd\remote\remotedemo\app\virtualawear\main.cpp(31) : error
C2440: '<function-style-cast>' : cannot convert from 'std::ofstream'
to 'std::istreambuf_iterator<_Elem,_Traits>'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> No constructor could take the source type, or constructor
overload resolution was ambiguous
============================
On Wed, 19 Nov 2008 01:22:44 -0800 (PST), Maxim Yegorushkin
<maxim.yegorushkin@gmail.com> wrote:
On Nov 19, 9:13?am, Joy Maitland <iiu...@yahoo.com> wrote:
how to use <iostream> to read a file to a const BYTE array?
const BYTE *pbBinary
You don't normally read a file into a pointer. You read a file into an
array and point that pointer to that array:
#include <iostream>
#include <vector>
#include <iterator>
int main()
{
typedef unsigned char BYTE;
// read from std::cin
std::vector<BYTE> bytes(
(std::istreambuf_iterator<char>(std::cin))
, (std::istreambuf_iterator<char>())
);
if(bytes.empty())
; // no bytes have been read
BYTE const* pbBinary = &bytes[0];
}