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

  FORUM HardWare.fr
  Programmation
  C

  Ecrire la valeur ascii dans un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Ecrire la valeur ascii dans un fichier

n°1445937
Guyome666
Posté le 21-09-2006 à 17:43:01  profilanswer
 

Bonjour,
 
Je previens tout de suite, je débute dans le C alors la question peut paraitre stupide mais pour moi elle ne l´est pas.
 
Voila, dans mon programme j´ai obtenu une valeure que je stocke dans un objet "int" et je voudrais l´ecrire dans un fichier .doc via les fonctions "open" et "write". Jusque là tout ce passe bien sauf que lors que je lis le ficher (avec le bloc note), ce n´est pas la valeur de l´entier qui est affiché mais la représentation ASCII de cet entier. Je suppose qu´il doit exister une fonction de convertion, j´ai cherché du côté de sting.h mais j´ai pas trouver.
 
voila un resumé du code que j´ai ecrit
int a; -- On suppose que cet entier contient la valeur qui m´interresse
 
 fd = open("c:/valeur.doc", O_WRONLY |O_CREAT |O_TRUNC| O_TEXT,S_IWRITE );
        write(fd, &a, 1)   ;
 
Voilà, toute aide est la bienvenue
Merci d´avance

mood
Publicité
Posté le 21-09-2006 à 17:43:01  profilanswer
 

n°1445938
Taz
bisounours-codeur
Posté le 21-09-2006 à 17:44:25  profilanswer
 

printf("%d", 'a');

n°1445942
Emmanuel D​elahaye
C is a sharp tool
Posté le 21-09-2006 à 17:48:36  profilanswer
 

Guyome666 a écrit :

Code :
  1. fd = open("c:/valeur.doc", O_WRONLY |O_CREAT |O_TRUNC| O_TEXT,S_IWRITE );
  2.         write(fd, &a, 1)   ;




Pourquoi utilises-tu des fonctions systèmes ? Il y a des fonctions standards pour ça.
 
fopen()
fprintf()...
 
déclarées dans <stdio.h>


Message édité par Emmanuel Delahaye le 21-09-2006 à 17:49:42

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1445974
Sve@r
Posté le 21-09-2006 à 19:39:45  profilanswer
 

Guyome666 a écrit :

Code :
  1. write(fd, &a, 1)



Que contient "a" ? Probablement une valeur numérique comme 65 ou 112. Bon. Tu écris cette valeur dans un fichier, il n'y a pas de miracle. Le fichier stocke cette valeur telle qu'elle, de façon binaire (tu en auras la preuve si tu ouvres ton fichier avec un éditeur hexa).
 
Toi, tu voudrais écrire une représentation en mode texte de cette valeur. Autrement dit, si "a" contient "112", tu voudrais que ton fichier contienne les caractères '1', '1' et '2' (si j'ai bien compris) afin de pouvoir l'ouvrir en mode "texte".
 
T'as 2 solutions :
1) tu utilises une zone "tampon" suffisemment grande tans laquelle tu écris ton "112" puis tu écris ce tampon dans le fichier


char tampon[1024];
int a=112;
int fd;
fd=open(..., ...);
sprintf(tampon, "%d", a);
write(fd, tampon, strlen(tampon));
close(fd);


 
2) tu utilises la fonction "fprintf()" qui te permet d'écrire ce que tu veux de façon "texte" dans un fichier (un peu comme le fait "printf()" à l'écran). Malheureusement, "fprintf()" ne marche qu'avec des fichiers ouvert par "fopen()" et non "open()".


int a=112;
FILE *fp;
fp=fopen(..., "w" );
fprintf(fp, "%d", a);
fclose(fp);


Message édité par Sve@r le 21-09-2006 à 19:40:50

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1446424
Guyome666
Posté le 22-09-2006 à 17:34:24  profilanswer
 

Merci, c´est exactement ce que je cherchais, maintenant ça fonctionne parfaitement.
 
Pourquoi est-ce que j´utilise des fonctions système?
Parceque dans le tutorial que j´ai suivi http://www-ipst.u-strasbg.fr/pat/program/tpc.htm , ils disent "C'est la méthode la plus efficace et rapide pour stocker et récupérer des données sur fichier" et qu´en tant que débutant je leur ai fait confiance

n°1446426
_darkalt3_
Proctopathe
Posté le 22-09-2006 à 17:47:42  profilanswer
 

Guyome666 a écrit :

Merci, c´est exactement ce que je cherchais, maintenant ça fonctionne parfaitement.
 
Pourquoi est-ce que j´utilise des fonctions système?
Parceque dans le tutorial que j´ai suivi http://www-ipst.u-strasbg.fr/pat/program/tpc.htm , ils disent "C'est la méthode la plus efficace et rapide pour stocker et récupérer des données sur fichier" et qu´en tant que débutant je leur ai fait confiance


 
Si le gars justifie rien, ca n'engage que lui, et donc ne fais pas confiance


---------------
Töp of the plöp
n°1446428
Elmoricq
Modérateur
Posté le 22-09-2006 à 17:51:11  profilanswer
 

Je suis en train de parcourir ce tutorial.
 
On y trouve tous les travers d'un cours universitaire classique. A oublier.
 
En plus clair, plus concis, mieux expliqué et surtout plus juste, tu as, en ligne :
La page d'E. Delahaye ( http://mapage.noos.fr/emdel ) qui comprend aussi des liens vers d'autres cours
De nombreux tutoriaux sur le site developpez.net ( http://c.developpez.com/cours )
 
Et en livre, le fameux K&R ("Le Langage C", de Kernighan&Ritchie)


Message édité par Elmoricq le 22-09-2006 à 17:53:38
n°1446541
Sve@r
Posté le 23-09-2006 à 05:37:42  profilanswer
 

Guyome666 a écrit :

... ils disent "C'est la méthode la plus efficace et rapide pour stocker et récupérer des données sur fichier"...


Ils disent aussi "mais aussi la moins pratique". D'ailleurs, avec "open", t'es obligé de créer ton propre tampon alors que celui-ci est automatiquement géré avec "fopen". Bon, le mieux est que tu saches utiliser les 2 façons d'accéder à un fichier surtout que chaque mode a des avantages/inconvénients. Par exemple, moi j'aime beaucoup la gamme des possibles de "open()" avec les combinaisons O_CREAT et O_EXCL qu"on ne trouve pas avec "fopen()"...


Message édité par Sve@r le 23-09-2006 à 05:43:14

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

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

  Ecrire la valeur ascii dans un fichier

 

Sujets relatifs
Problème d'accentuation avec un fichier XMLParsing de fichier?
Listing de fichier comme sur FTPComposer un nom de fichier
Taille du fichier index[BATCH][WINXP]Supprimer fichier de plus de 3 mois
Explode sur une valeur de retourfichier temporaire memoire ou pipe
Extraire des adresses email dans un gros fichier texteEcrire sur un fichier
Plus de sujets relatifs à : Ecrire la valeur ascii dans un fichier


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