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.