Je suis pas sur de te suivre. Il me semble que l'idiome des E/S en C, c'est qu'il faut échouer dans une lecture pour s'appercevoir qu'on est à la fin, et dans ce cadre, je ne vois pas la distinction entre getc[har] et fgets par exemple.
J'ai raté un truc ?
Non. Enfin, l'antecedant de "cette structure" vraissemblablement. C'est la structure de
char c; if ( (c=getc()) && !feof ) en lieu et place de int c; if ( (c=getc()) != EOF )
mais le jour ou on a du y penser, il devait être trop tard.
Ou tu fais l'operation sans tester sa validite (en fait il y a probleme si getc() renvoie 0 que je n'avais pas signale
Oui, grave erreur de ma part le code 0. On pourrait faire if ( (c=getc()), !feof && !ferror ) mais ça devient nimporte quoi...
Pour getc (hormis le pb de 0 et ferror), je ne crois pas qu'il y ait un probleme. Les autres operations (fgets par exemple) peuvent mettre feof (et peut-etre ferror faudrait que je regarde) sans echouer.
Pas de norme sous la main, mais la page de man de Sun sur fgets indique en effet que la lecture positionne EOF si fgets rencontre la fin, sans que ce soit un cas d'erreur.
Quel bordel...
Marc Boyer -- Lying for having sex or lying for making war? Trust US presidents :-(
Jean-Marc Bourguet wrote:
Marc Boyer <Marc.Boyer@enseeiht.yahoo.fr.invalid> writes:
Je suis pas sur de te suivre.
Il me semble que l'idiome des E/S en C, c'est qu'il
faut échouer dans une lecture pour s'appercevoir qu'on
est à la fin, et dans ce cadre, je ne vois pas la distinction
entre getc[har] et fgets par exemple.
J'ai raté un truc ?
Non. Enfin, l'antecedant de "cette structure" vraissemblablement.
C'est la structure de
char c;
if ( (c=getc()) && !feof )
en lieu et place de
int c;
if ( (c=getc()) != EOF )
mais le jour ou on a du y penser, il devait être trop tard.
Ou tu fais l'operation sans tester sa validite (en fait il y a
probleme si getc() renvoie 0 que je n'avais pas signale
Oui, grave erreur de ma part le code 0. On pourrait
faire
if ( (c=getc()), !feof && !ferror )
mais ça devient nimporte quoi...
Pour getc (hormis le pb de 0 et ferror), je ne
crois pas qu'il y ait un probleme. Les autres operations (fgets par
exemple) peuvent mettre feof (et peut-etre ferror faudrait que je
regarde) sans echouer.
Pas de norme sous la main, mais la page de man de Sun sur
fgets indique en effet que la lecture positionne EOF si
fgets rencontre la fin, sans que ce soit un cas d'erreur.
Quel bordel...
Marc Boyer
--
Lying for having sex or lying for making war? Trust US presidents :-(
Je suis pas sur de te suivre. Il me semble que l'idiome des E/S en C, c'est qu'il faut échouer dans une lecture pour s'appercevoir qu'on est à la fin, et dans ce cadre, je ne vois pas la distinction entre getc[har] et fgets par exemple.
J'ai raté un truc ?
Non. Enfin, l'antecedant de "cette structure" vraissemblablement. C'est la structure de
char c; if ( (c=getc()) && !feof ) en lieu et place de int c; if ( (c=getc()) != EOF )
mais le jour ou on a du y penser, il devait être trop tard.
Ou tu fais l'operation sans tester sa validite (en fait il y a probleme si getc() renvoie 0 que je n'avais pas signale
Oui, grave erreur de ma part le code 0. On pourrait faire if ( (c=getc()), !feof && !ferror ) mais ça devient nimporte quoi...
Pour getc (hormis le pb de 0 et ferror), je ne crois pas qu'il y ait un probleme. Les autres operations (fgets par exemple) peuvent mettre feof (et peut-etre ferror faudrait que je regarde) sans echouer.
Pas de norme sous la main, mais la page de man de Sun sur fgets indique en effet que la lecture positionne EOF si fgets rencontre la fin, sans que ce soit un cas d'erreur.
Quel bordel...
Marc Boyer -- Lying for having sex or lying for making war? Trust US presidents :-(
Gabriel Dos Reis
Marc Boyer writes:
| Pas de norme sous la main, mais la page de man de Sun sur | fgets indique en effet que la lecture positionne EOF si | fgets rencontre la fin, sans que ce soit un cas d'erreur. | | Quel bordel...
Je suppose que std::istream ne te manque pas ;-)
-- Gaby
Marc Boyer <Marc.Boyer@enseeiht.yahoo.fr.invalid> writes:
| Pas de norme sous la main, mais la page de man de Sun sur
| fgets indique en effet que la lecture positionne EOF si
| fgets rencontre la fin, sans que ce soit un cas d'erreur.
|
| Quel bordel...
| Pas de norme sous la main, mais la page de man de Sun sur | fgets indique en effet que la lecture positionne EOF si | fgets rencontre la fin, sans que ce soit un cas d'erreur. | | Quel bordel...
Je suppose que std::istream ne te manque pas ;-)
-- Gaby
Antoine Leca
Marc Boyerva escirure
Bon, sinon, tu ne m'as pas repris sur ce que j'allais leur raconter (stockage dans des char et test par feof et ferror + transtypage pour les isXXX), j'en déduis que c'est correct.
Bon, j'étais pas trop sûr du coup de feof() + ferror(), mais Jean-Marc a relevé le sujet, je n'ai pas besoin d'analyser plus.
Merci Jean-Marc ;-)
Antoine
Marc Boyerva escirure
Bon, sinon, tu ne m'as pas repris sur ce que j'allais
leur raconter (stockage dans des char et test par feof et
ferror + transtypage pour les isXXX), j'en déduis que
c'est correct.
Bon, j'étais pas trop sûr du coup de feof() + ferror(), mais
Jean-Marc a relevé le sujet, je n'ai pas besoin d'analyser plus.
Bon, sinon, tu ne m'as pas repris sur ce que j'allais leur raconter (stockage dans des char et test par feof et ferror + transtypage pour les isXXX), j'en déduis que c'est correct.
Bon, j'étais pas trop sûr du coup de feof() + ferror(), mais Jean-Marc a relevé le sujet, je n'ai pas besoin d'analyser plus.