iostream - BYTE array

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Joy Maitland

    #1

    iostream - BYTE array

    how to use <iostreamto read a file to a const BYTE array?

    const BYTE *pbBinary
  • Maxim Yegorushkin

    #2
    Re: iostream - BYTE array

    On Nov 19, 9:13 am, Joy Maitland <iiu...@yahoo.c omwrote:
    how to use <iostreamto 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<BYT Ebytes(
    (std::istreambu f_iterator<char >(std::cin))
    , (std::istreambu f_iterator<char >())
    );
    if(bytes.empty( ))
    ; // no bytes have been read

    BYTE const* pbBinary = &bytes[0];
    }

    --
    Max

    Comment

    • Joy Maitland

      #3
      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<BYT Ebytes(
      (std::istreambu f_iterator<char >(file1))
      , (std::istreambu f_iterator<char >())
      );
      if(bytes.empty( ))
      ; // no bytes have been read

      BYTE const* pbBinary = &bytes[0];

      =============== ============

      1>d:\snd\remote \remotedemo\app \virtualawear\m ain.cpp(31) : error
      C2440: '<function-style-cast>' : cannot convert from 'std::ofstream'
      to 'std::istreambu f_iterator<_Ele m,_Traits>'
      1 with
      1 [
      1 _Elem=char,
      1 _Traits=std::ch ar_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.yegorush kin@gmail.comwr ote:
      >On Nov 19, 9:13?am, Joy Maitland <iiu...@yahoo.c omwrote:
      >how to use <iostreamto 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<BYT Ebytes(
      (std::istreambu f_iterator<char >(std::cin))
      , (std::istreambu f_iterator<char >())
      );
      if(bytes.empty( ))
      ; // no bytes have been read
      >
      BYTE const* pbBinary = &bytes[0];
      }

      Comment

      • Maxim Yegorushkin

        #4
        Re: iostream - BYTE array

        On Nov 19, 9:36 am, Joy Maitland <iiu...@yahoo.c omwrote:
        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");
        Becuase you are using an output stream, rather than an input. Change
        ofstream to ifstream.

        --
        Max

        Comment

        Working...