Copier le contenu d'un fichier dans un buffer

Copier le contenu d'un fichier dans un buffer - C++ - Programmation

Marsh Posté le 28-04-2005 à 13:20:07    

Bonjour à tous,
 
j'ai le code suivant, qui me permet d'écrire un buffer dans un fichier:
 

Code :
  1. int stateSize;
  2. pCompressDialog->GetState(0, &stateSize);
  3. unsigned char* stateBuf = new unsigned char[stateSize];
  4. pCompressDialog->GetState(stateBuf, &stateSize);
  5. std::ofstream ofs("C:\\state.vfw", std::ios::binary | std::ios::out);
  6. std::copy(stateBuf, stateBuf + stateSize, std::ostream_iterator<unsigned char>(ofs));
  7. ofs.close();
  8. delete [] stateBuf;


 
Je voudrais maintenant faire l'inverse, à savoir copier le contenu du fichier dans un buffer:
 

Code :
  1. int stateSize;
  2. pCompressDialog->GetState(0, &stateSize);
  3. unsigned char* stateBuf = new unsigned char[stateSize];
  4. std::ifstream ifs("C:\\state.vfw", std::ios::binary | std::ios::in);
  5. std::copy(std::istream_iterator<unsigned char *>(ifs),
  6.           std::istream_iterator<unsigned char *>(),
  7.           &stateBuf);
  8. ifs.close();


 
Mais visiblement mon buffer n'est pas bien rempli...
 
Où est l'erreur?
 
Merci d'avance...

Reply

Marsh Posté le 28-04-2005 à 13:20:07   

Reply

Marsh Posté le 28-04-2005 à 13:58:09    

&stateBuf, std::istream_iterator<unsigned char *> -> std::istream_iterator<unsigned char>


Message édité par skelter le 28-04-2005 à 13:58:48
Reply

Marsh Posté le 28-04-2005 à 14:12:43    

à base de string, plein de technique de fourbe
 

Code :
  1. #include <iostream>
  2. #include <sstream>
  3. #include <fstream>
  4. int main(int argc, char *argv[])
  5. {
  6.   if (argc != 2)
  7.     return 1;
  8.   std::ifstream in(argv[1], std::ios::binary);
  9.   std::ostringstream out;
  10.   if(!in)
  11.     return 2;
  12.   out << in.rdbuf();
  13.   std::cout << out.str();
  14. }

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed