lecture binaire d'un fichier
Bonsoir,
J'aimerai votre aide pour ce code qui me permet de lire un fichier et de l'afficher octet par octet, mais que je n'arrive pas modifier pour lire par exemple 8 octets par 8 octets.
Code pour 1 octet (fonctionne) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| #include <iostream>
#include <fstream>
using namespace std;
int main()
{
string fichier = "mon fichier";
ifstream fluxFichier(fichier.c_str(),ios::binary);
fluxFichier.seekg(0,ios::beg);
char caractere ='\n';
int i = -1;
do
{
cout << caractere;
fluxFichier.read(&caractere,1);
i++;
}
while (!fluxFichier.eof());
cout << endl << endl << i << "octet(s)";
return 0;
} |
Tentative pour 8 octets :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| #include <iostream>
#include <fstream>
using namespace std;
int main()
{
string fichier = "mon fichier";
ifstream fluxFichier(fichier.c_str(),ios::binary);
fluxFichier.seekg(0,ios::beg);
char caracteres[8];
int i = 0;
do
{
cout << caracteres;
fluxFichier.read(&caracteres,8);
i++;
}
while (!fluxFichier.eof());
cout << endl << endl << i << "itération(s)";
return 0;
} |
Citation:
17 error: no matching function for call to ‘std::basic_ifstream<char, std::char_traits<char> >::read(char (*)[8], int)’
/usr/include/c++/4.4/istream 464 note: candidates are: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::read(_CharT*, std::streamsize) [with _CharT = char, _Traits = std::char_traits<char>]
et je ne saisis pas le problème de type de variable qui bloque... il faut bien un tableau de char si on lit plusieurs octets ?
j'ai aussi trouvé ce code qui ne fonctionne pas... http://www.developpez.net/forums/d95...t/#post5392048