J'aimerais être sûr d'avoir compris ce que tu as dit: tu veux dire que
readsome ne lira pas dans le fichier mais uniquement dans le buffer
associé ?
Ma compréhension était que readsome ne levait pas eofbit quand
il arrivait a la fin du fichier mais a part cela etait
équivalent à un read et gcount dans le cas d'un fichier.
J'aimerais être sûr d'avoir compris ce que tu as dit: tu veux dire que
readsome ne lira pas dans le fichier mais uniquement dans le buffer
associé ?
Ma compréhension était que readsome ne levait pas eofbit quand
il arrivait a la fin du fichier mais a part cela etait
équivalent à un read et gcount dans le cas d'un fichier.
J'aimerais être sûr d'avoir compris ce que tu as dit: tu veux dire que
readsome ne lira pas dans le fichier mais uniquement dans le buffer
associé ?
Ma compréhension était que readsome ne levait pas eofbit quand
il arrivait a la fin du fichier mais a part cela etait
équivalent à un read et gcount dans le cas d'un fichier.
James Kanze writes:On Nov 13, 9:06 pm, Jean-Marc Bourguet wrote:Michael DOUBEZ writes:je voudrais savoir si mon code est correct, où s'il existe une a utre
méthode
file_ est un fstream
size_t sizeP0;
char* ptr=new char[size];
the_file.read(ptr,size);
Utilises gcount() pour connaitre le nombre d'octet
effectivement lus ou utilises readsome()?
Pourquoi utiliser readsome dans ce contexte?
Sans doute pour la même raison que beaucoup de gens utilisent
rdbuf()->in_avail() : parce qu'ils en ont mal compris la
sémantique.
Si au moins in_avail retournait egptr() - gptr() + showmanyc()
(La flemme de regarder, comment showmanyc interagit avec les
mapping CR/LF->LF? Mal je suppose pour rendre encore la chose
encore moins utilisable.)
James Kanze <james.ka...@gmail.com> writes:
On Nov 13, 9:06 pm, Jean-Marc Bourguet <j...@bourguet.org> wrote:
Michael DOUBEZ <michael.dou...@free.fr> writes:
je voudrais savoir si mon code est correct, où s'il existe une a utre
méthode
file_ est un fstream
size_t size=500;
char* ptr=new char[size];
the_file.read(ptr,size);
Utilises gcount() pour connaitre le nombre d'octet
effectivement lus ou utilises readsome()?
Pourquoi utiliser readsome dans ce contexte?
Sans doute pour la même raison que beaucoup de gens utilisent
rdbuf()->in_avail() : parce qu'ils en ont mal compris la
sémantique.
Si au moins in_avail retournait egptr() - gptr() + showmanyc()
(La flemme de regarder, comment showmanyc interagit avec les
mapping CR/LF->LF? Mal je suppose pour rendre encore la chose
encore moins utilisable.)
James Kanze writes:On Nov 13, 9:06 pm, Jean-Marc Bourguet wrote:Michael DOUBEZ writes:je voudrais savoir si mon code est correct, où s'il existe une a utre
méthode
file_ est un fstream
size_t sizeP0;
char* ptr=new char[size];
the_file.read(ptr,size);
Utilises gcount() pour connaitre le nombre d'octet
effectivement lus ou utilises readsome()?
Pourquoi utiliser readsome dans ce contexte?
Sans doute pour la même raison que beaucoup de gens utilisent
rdbuf()->in_avail() : parce qu'ils en ont mal compris la
sémantique.
Si au moins in_avail retournait egptr() - gptr() + showmanyc()
(La flemme de regarder, comment showmanyc interagit avec les
mapping CR/LF->LF? Mal je suppose pour rendre encore la chose
encore moins utilisable.)
James Kanze writes:On Nov 13, 9:06 pm, Jean-Marc Bourguet wrote:Michael DOUBEZ writes:je voudrais savoir si mon code est correct, où s'il existe une aut re
méthode
file_ est un fstream
size_t sizeP0;
char* ptr=new char[size];
the_file.read(ptr,size);
Utilises gcount() pour connaitre le nombre d'octet
effectivement lus ou utilises readsome()?
Pourquoi utiliser readsome dans ce contexte?
Sans doute pour la même raison que beaucoup de gens utilisent
rdbuf()->in_avail() : parce qu'ils en ont mal compris la
sémantique.
Si au moins in_avail retournait egptr() - gptr() + showmanyc()
(La flemme de regarder, comment showmanyc interagit avec les mapping
CR/LF->LF? Mal je suppose pour rendre encore la chose encore moins
utilisable.)
Est ce que read fait la conversion CR/LF->LF ?
James Kanze <james.ka...@gmail.com> writes:
On Nov 13, 9:06 pm, Jean-Marc Bourguet <j...@bourguet.org> wrote:
Michael DOUBEZ <michael.dou...@free.fr> writes:
je voudrais savoir si mon code est correct, où s'il existe une aut re
méthode
file_ est un fstream
size_t size=500;
char* ptr=new char[size];
the_file.read(ptr,size);
Utilises gcount() pour connaitre le nombre d'octet
effectivement lus ou utilises readsome()?
Pourquoi utiliser readsome dans ce contexte?
Sans doute pour la même raison que beaucoup de gens utilisent
rdbuf()->in_avail() : parce qu'ils en ont mal compris la
sémantique.
Si au moins in_avail retournait egptr() - gptr() + showmanyc()
(La flemme de regarder, comment showmanyc interagit avec les mapping
CR/LF->LF? Mal je suppose pour rendre encore la chose encore moins
utilisable.)
Est ce que read fait la conversion CR/LF->LF ?
James Kanze writes:On Nov 13, 9:06 pm, Jean-Marc Bourguet wrote:Michael DOUBEZ writes:je voudrais savoir si mon code est correct, où s'il existe une aut re
méthode
file_ est un fstream
size_t sizeP0;
char* ptr=new char[size];
the_file.read(ptr,size);
Utilises gcount() pour connaitre le nombre d'octet
effectivement lus ou utilises readsome()?
Pourquoi utiliser readsome dans ce contexte?
Sans doute pour la même raison que beaucoup de gens utilisent
rdbuf()->in_avail() : parce qu'ils en ont mal compris la
sémantique.
Si au moins in_avail retournait egptr() - gptr() + showmanyc()
(La flemme de regarder, comment showmanyc interagit avec les mapping
CR/LF->LF? Mal je suppose pour rendre encore la chose encore moins
utilisable.)
Est ce que read fait la conversion CR/LF->LF ?
On Nov 13, 9:06 pm, Jean-Marc Bourguet wrote:Michael DOUBEZ writes:je voudrais savoir si mon code est correct, où s'il existe une autr e
méthode
file_ est un fstream
size_t sizeP0;
char* ptr=new char[size];
the_file.read(ptr,size);
Utilises gcount() pour connaitre le nombre d'octet
effectivement lus ou utilises readsome()?
Pourquoi utiliser readsome dans ce contexte?
Sans doute pour la même raison que beaucoup de gens utilisent
rdbuf()->in_avail() : parce qu'ils en ont mal compris la
sémantique.
in_avail() retourne le nombre de caractères pouvant être lut
par read sans bloquer. Je ne vois pas en quoi c'est
incompatible avec readsome sur un fichier, le nombre de
caractères pouvant être lut etant bien ceux entre le curseur
courant et la fin du fichier.
streamsize readsome(char_type* s, streamsize n);
Effects: If !good() calls setstate(failbit) which may throw an
exception, and return. Otherwise extracts characters and stores them
into successive locations of an array whose first element is designated
by s . If rdbuf()->in_avail() == -1, calls setstate(eofbit) (which may
throw ios_base::failure (lib.iostate.flags)), and extracts no characters;
* If rdbuf()->in_avail() == 0, extracts no characters
* If rdbuf()->in_avail() > 0, extracts min(rdbuf()->in_avail(),n)).
On Nov 13, 9:06 pm, Jean-Marc Bourguet <j...@bourguet.org> wrote:
Michael DOUBEZ <michael.dou...@free.fr> writes:
je voudrais savoir si mon code est correct, où s'il existe une autr e
méthode
file_ est un fstream
size_t size=500;
char* ptr=new char[size];
the_file.read(ptr,size);
Utilises gcount() pour connaitre le nombre d'octet
effectivement lus ou utilises readsome()?
Pourquoi utiliser readsome dans ce contexte?
Sans doute pour la même raison que beaucoup de gens utilisent
rdbuf()->in_avail() : parce qu'ils en ont mal compris la
sémantique.
in_avail() retourne le nombre de caractères pouvant être lut
par read sans bloquer. Je ne vois pas en quoi c'est
incompatible avec readsome sur un fichier, le nombre de
caractères pouvant être lut etant bien ceux entre le curseur
courant et la fin du fichier.
streamsize readsome(char_type* s, streamsize n);
Effects: If !good() calls setstate(failbit) which may throw an
exception, and return. Otherwise extracts characters and stores them
into successive locations of an array whose first element is designated
by s . If rdbuf()->in_avail() == -1, calls setstate(eofbit) (which may
throw ios_base::failure (lib.iostate.flags)), and extracts no characters;
* If rdbuf()->in_avail() == 0, extracts no characters
* If rdbuf()->in_avail() > 0, extracts min(rdbuf()->in_avail(),n)).
On Nov 13, 9:06 pm, Jean-Marc Bourguet wrote:Michael DOUBEZ writes:je voudrais savoir si mon code est correct, où s'il existe une autr e
méthode
file_ est un fstream
size_t sizeP0;
char* ptr=new char[size];
the_file.read(ptr,size);
Utilises gcount() pour connaitre le nombre d'octet
effectivement lus ou utilises readsome()?
Pourquoi utiliser readsome dans ce contexte?
Sans doute pour la même raison que beaucoup de gens utilisent
rdbuf()->in_avail() : parce qu'ils en ont mal compris la
sémantique.
in_avail() retourne le nombre de caractères pouvant être lut
par read sans bloquer. Je ne vois pas en quoi c'est
incompatible avec readsome sur un fichier, le nombre de
caractères pouvant être lut etant bien ceux entre le curseur
courant et la fin du fichier.
streamsize readsome(char_type* s, streamsize n);
Effects: If !good() calls setstate(failbit) which may throw an
exception, and return. Otherwise extracts characters and stores them
into successive locations of an array whose first element is designated
by s . If rdbuf()->in_avail() == -1, calls setstate(eofbit) (which may
throw ios_base::failure (lib.iostate.flags)), and extracts no characters;
* If rdbuf()->in_avail() == 0, extracts no characters
* If rdbuf()->in_avail() > 0, extracts min(rdbuf()->in_avail(),n)).
Je connais exactement la structure du fichier.
Quand je lis une grosse structure (avec de nombreux appels à
read), je trouve lourd de vérifier le nombre d'octects lus à
chaque fois.
Qu'est-ce qui se passe dans le code suivant si la lecture de x
échoue ? y-a-t-il une exception lors de la tentative de
lecture de y, ou la fonction ne fait simplement rien compte
tenu de l'état du flux ?
input.read((char*)&x,sizeof(x));
input.read((char*)&y,sizeof(y));
je préfèrerait vérifier l'état du flux une fois pour toutes à
la fin (sachant que normalement il n'y a jamais de problème !)
autre question :
operator !() est surchargé pour fstream (entre-autres)
est-ce que operator bool() est surchargé de la même manière (mon com pilateur
l'accepte) , ie
if (input) ...
équivaut à
if (!!input)
?
Je connais exactement la structure du fichier.
Quand je lis une grosse structure (avec de nombreux appels à
read), je trouve lourd de vérifier le nombre d'octects lus à
chaque fois.
Qu'est-ce qui se passe dans le code suivant si la lecture de x
échoue ? y-a-t-il une exception lors de la tentative de
lecture de y, ou la fonction ne fait simplement rien compte
tenu de l'état du flux ?
input.read((char*)&x,sizeof(x));
input.read((char*)&y,sizeof(y));
je préfèrerait vérifier l'état du flux une fois pour toutes à
la fin (sachant que normalement il n'y a jamais de problème !)
autre question :
operator !() est surchargé pour fstream (entre-autres)
est-ce que operator bool() est surchargé de la même manière (mon com pilateur
l'accepte) , ie
if (input) ...
équivaut à
if (!!input)
?
Je connais exactement la structure du fichier.
Quand je lis une grosse structure (avec de nombreux appels à
read), je trouve lourd de vérifier le nombre d'octects lus à
chaque fois.
Qu'est-ce qui se passe dans le code suivant si la lecture de x
échoue ? y-a-t-il une exception lors de la tentative de
lecture de y, ou la fonction ne fait simplement rien compte
tenu de l'état du flux ?
input.read((char*)&x,sizeof(x));
input.read((char*)&y,sizeof(y));
je préfèrerait vérifier l'état du flux une fois pour toutes à
la fin (sachant que normalement il n'y a jamais de problème !)
autre question :
operator !() est surchargé pour fstream (entre-autres)
est-ce que operator bool() est surchargé de la même manière (mon com pilateur
l'accepte) , ie
if (input) ...
équivaut à
if (!!input)
?
input.read((char*)&x,sizeof(x));
input.read((char*)&y,sizeof(y));
input.read((char*)&x,sizeof(x));
input.read((char*)&y,sizeof(y));
input.read((char*)&x,sizeof(x));
input.read((char*)&y,sizeof(y));