|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre régulier
![]() ![]() Développeur Web Inscription : janvier 2009 Messages : 100 ![]() |
Imaginons que l'on veuille afficher l'ensemble du contenu d'un fichier sans pour autant connaître la taille du fichier ou encore l'avoir construit selon une structure particulière (ce qui serait le cas pour un fichier de gestion de clients, par exemple).
lireFile.c Code :
Code :
Le fichier ZIP: les deux fichiers. |
||||
|
|
00
|
|
|
#2 | ||
|
Invité(e)
![]() Messages : n/a ![]() |
Bonjour,
Deux trois détails me chiffonnent : Code :
|
||
00
|
|
|
#3 |
|
Membre régulier
![]() ![]() Développeur Web Inscription : janvier 2009 Messages : 100 ![]() |
Bonjour mabu !
En ce qui concerne la fonction main, il est vrai que un retour entier aurait été plus académique ; mais ce n'est pas important (du moins, pas dans les labos que j'ai pu réaliser). Pour le #define du document, c'est une bonne idée. A la base, je voulais généralisé la fonction et lui passer en paramètre la chaine de caractères étant le fichier (mais je me suis pris la tête dessus et je l'ai fait au plus simple !) L'ouverture, je suis d'accord. C'est du texte, donc ouverture en mode texte. Mais peut-tu par hasard me préciser une interrogation que je me pose: quel est la différence significative entre l'ouverture en binaire ou en texte, dans le cas présent ? Quant à l'utilisation de perror(), certes on obtient une erreur plus précise mais... en anglais (mon programme étant destiné à des utilisateurs FR - logiquement). De plus, il ne faut pas oublier l'inclusion de errno.h, alors ! Petite question: l'utilisation de fputc() au lieu de printf(), pourquoi ? (certes un détail que je ne connais pas, ce n'est donc qu'une question pour m'informer |
|
|
00
|
|
|
#4 | |||||
![]() ![]() |
Salut,
Citation:
Code :
Citation:
C'est, le cas pour tout ce qui est fichiers compressés et fichier de format particulier Citation:
__________________
en bas de page
|
|||||
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() ![]() Développeur Web Inscription : janvier 2009 Messages : 100 ![]() |
Merci pour ces précisions
Pour ce qui est du message d'erreur, c'est préférable Je pense d'ailleurs qu'on sait obtenir le numéro d'erreur, et donc l'utiliser pour différentes langues. |
|
|
00
|
|
|
#6 | |||
|
Invité(e)
![]() Messages : n/a ![]() |
Citation:
Citation:
Et perror est définie dans stdio.h. Citation:
printf permet de formater des données avant affichage. Pour écrire un caractère dans un flux, il est plus simple de passer par fputc qui est plus ou moins direct que par printf("%c", ...) qui va analyser les paramètres avant de les écrire. |
|||
00
|
|
|
#7 |
|
Membre régulier
![]() ![]() Développeur Web Inscription : janvier 2009 Messages : 100 ![]() |
Merci pour toutes ces précisions, encore une fois.
Et désolé pour mes quelques remarques fautives, je ne sais d'ailleurs pas pourquoi mon aide m'a fournit que c'était errno.h mais bon... Quant à la langue, c'est possible... mais mon OS est en français, le compilateur en anglais ; ça vient surement de là. Mais bon, ce n'est pas trop un soucis ! |
|
|
00
|
|
|
#8 |
![]() ![]() vincent rogier Inscription : juillet 2007 Messages : 2 366 ![]() |
Lire un fichier caractère par caractère ?
Sérieusement, pour l'afficher entier sur la console, quel est l'intérêt ? Surtout dans une FAQ, c'est aberrant !
__________________
Vincent Rogier. Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique ! OCILIB (C Driver for Oracle) Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle |
|
00
|
|
|
#9 |
|
Membre régulier
![]() ![]() Développeur Web Inscription : janvier 2009 Messages : 100 ![]() |
Ca peut servir - du moins dans mon cas - à deux choses, par exemple:
- l'affichage d'un fichier texte quelconque tel qu'un journal d'erreurs. - l'affichage d'un fichier texte d'extension tpl (en fait, peu importe l'extension) comprenant la partie graphique du programme. Imaginons, je veux faire un listing des clients, j'affiche mon fichier sur la console et j'y place les données là où il faut par la suite. Ca permet une chose: la traduction du graphisme. - après, on peut y voir beaucoup d'applications, ... et puis, ce n'était pas une question que je me posais, puisque je me l'étais posée et ainsi, si quelqu'un veut savoir comment on fait, ça reste dans le forum |
|
|
00
|
|
|
#10 |
![]() ![]() |
Deux petites remarques supplémentaires sur le code original :
- Attention à while (!feof(fichier)) { ... }, ce n'est pas une bonne méthode pour parcourir un fichier caractère par caractère. Explications dans la FAQ. - fseek est inutile car il est garanti qu'à l'ouverture d'un fichier, le pointeur de position courante pointe le début du fichier si ce dernier a été ouvert en mode "r", "w" et leurs dérivés. Ensuite, je crois qu'on a déjà un programme similaire dans nos pages "sources" et ça ne m'étonnerait pas non plus de retrouver ce même programme dans nos cours et tutoriels de langage C. Conclusion : c'est beau, c'est utile, mais t'arrives un peu trop tard :p A+. |
|
|
00
|
|
|
#11 |
|
Membre régulier
![]() ![]() Développeur Web Inscription : janvier 2009 Messages : 100 ![]() |
Je prends bonne notes de toutes les remarques et je change le code que j'utilise pour mieux, ainsi
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com