Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2064 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [ C ] Est-ce que le read lit les caractères '\0' ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ C ] Est-ce que le read lit les caractères '\0' ?

n°125778
djoh
Posté le 14-04-2002 à 22:06:54  profilanswer
 

quand on lit un fichier avec read, il s'arrete avant le '\0' de fin de fichier, ou il le met dans le buffer, et s'arrete apres ?

mood
Publicité
Posté le 14-04-2002 à 22:06:54  profilanswer
 

n°125779
antp
Super Administrateur
Champion des excuses bidons
Posté le 14-04-2002 à 22:22:28  profilanswer
 

La fin de fichier c'est pas \0, c'est la fin de chaîne ça.
Et il ne stocke pas la marque de fin de fichier.

 

[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°125780
djoh
Posté le 14-04-2002 à 22:49:52  profilanswer
 

antp a écrit a écrit :

La fin de fichier c'est pas \0, c'est la fin de chaîne ça.
Et il ne stocke pas la marque de fin de fichier.  
 
 




 
comment on lui dit d'arreter de lire, a la fin du fichier ?
on est obliger de faire ça avec la taille ?

n°125781
djoh
Posté le 14-04-2002 à 22:50:37  profilanswer
 

et stocke t-il le caractere fin de chaine '\0' ?
(et c'est quoi au fait, le caractere fin de fichier ?)

n°125782
[SDF]Poire
Vive Grumly
Posté le 14-04-2002 à 22:57:12  profilanswer
 

djoh a écrit a écrit :

 
 
comment on lui dit d'arreter de lire, a la fin du fichier ?
on est obliger de faire ça avec la taille ?  




Avec EOF


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°125784
antp
Super Administrateur
Champion des excuses bidons
Posté le 14-04-2002 à 23:01:22  profilanswer
 

Ou quand read renvoie une valeur plus petite que celle qu'on lui a demandé de lire.
Le \0 il s'en fout il le lit comme si c'était un autre caractère (on parle bien des fonctions open, read, write, close)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°125789
djoh
Posté le 14-04-2002 à 23:33:11  profilanswer
 

antp a écrit a écrit :

Ou quand read renvoie une valeur plus petite que celle qu'on lui a demandé de lire.
Le \0 il s'en fout il le lit comme si c'était un autre caractère (on parle bien des fonctions open, read, write, close)  




 
ok, impecable
merci   :jap:

n°125791
LeGreg
Posté le 14-04-2002 à 23:36:10  profilanswer
 

[SDF]Poire a écrit a écrit :

 
Avec EOF  




 
non, EOF c'est pas pour read
c'est pour les fonctions de la lib standard genre getc.
 
read (ou _read sous windows) retourne zero
quand on lit a la fin du fichier.
il peut renvoyer moins que ce que l'on a demande sans arriver
pour autant a la fin du fichier suivant le type d'entree.
 
LEGREG

 

[jfdsdjhfuetppo]--Message édité par legreg--[/jfdsdjhfuetppo]

n°125829
koulip31
Posté le 15-04-2002 à 09:30:34  profilanswer
 

antp a écrit a écrit :

La fin de fichier c'est pas \0, c'est la fin de chaîne ça.
Et il ne stocke pas la marque de fin de fichier.  
 
 




 
 [:the%20real%20pinzo]  [:the%20real%20pinzo]  
 
heu EOF == \0 dans un  fichier  ..... loool  
 
 
un fichir avec les char non imprimables ca donne ca :
 
coucou les\r\namis comment ca va?\r\n\tglop lgop\n\0
 
 
avec de read de 1
ca ca morche pour un fichier
 
while(*a)
 read(fd,a,1);
 
 [:m@nou]

n°125831
koulip31
Posté le 15-04-2002 à 09:34:41  profilanswer
 

koulip31 a écrit a écrit :

 
while(*a)
 read(fd,a,1);
 
 [:m@nou]  




 
PS : fait un gros buffer de lecture
et comme read te renvoie le nombre de char lut
 
si le nombre de char luts == taille du buffer   tes pas a la fin
si le nombre de char luts < taille du buffer  
ou si nombre de char luts == 0             le fichiedr a ete lut
donc copier tout les char du buffer precedant le \0 et basta

mood
Publicité
Posté le 15-04-2002 à 09:34:41  profilanswer
 

n°125836
antp
Super Administrateur
Champion des excuses bidons
Posté le 15-04-2002 à 09:46:13  profilanswer
 

koulip31 a écrit a écrit :

 
 
 [:the%20real%20pinzo]  [:the%20real%20pinzo]  
 
heu EOF == \0 dans un  fichier  ..... loool  
 
 
un fichir avec les char non imprimables ca donne ca :
 
coucou les\r\namis comment ca va?\r\n\tglop lgop\n\0
 
 
avec de read de 1
ca ca morche pour un fichier
 
while(*a)
 read(fd,a,1);
 
 [:m@nou]  




 
T'as bu ou quoi ?
Tu fous un \0 en plein milieu d'un fichier ça ne provoque pas pour autant une coupure du fichier.
Tous les programmes (sauf ton exemple) lisent le fichier au-delà de ce \0.

 

[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [ C ] Est-ce que le read lit les caractères '\0' ?

 

Sujets relatifs
[VB] Recuperation d'une chaine de caracteres...ajouter un caractere tous les n caracteres dans une chaine
[PHP] Supprimer tous les espaces au début d'une chaine de caracteres[C++ (builder)] Chaînes de caractères en Unicode
[debutant C++] question sur les caractères..Code d'1 logiciel de reconnaissance de caractères
[T-SQL] Comment splitter une chaine de caractères?[PHP]-> Reg. Exp. -> couper une chaine > X caractères ..
[SH]conservation des espaces avec READ[html] affichage de caractères spéciaux comme '<' ou '>'
Plus de sujets relatifs à : [ C ] Est-ce que le read lit les caractères '\0' ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR