bonsoir,
dès que j'insere 1 entier dans 1 fichier comme suit:
fputc(i,mon_fichier);
je retrouve 1 caractere spécial au lieu de mon entier!!
que dois je faire svp?
Version imprimable
bonsoir,
dès que j'insere 1 entier dans 1 fichier comme suit:
fputc(i,mon_fichier);
je retrouve 1 caractere spécial au lieu de mon entier!!
que dois je faire svp?
Il vaut mieux utiliser "fprintf" qui s'utilise (presque) comme "printf".
Ouvrir un livre de C :Citation:
Envoyé par naazih
Kernighan & Ricthie Edition 2
Chapitre 7
ou
http://publications.gbdirect.co.uk/c...matted_io.html
On ne peut pas t'apprendre les bases. C'est ton travail.
je suggererai d'ecrire :
nan ??Code:
1
2
3 int c=1; fputc(c,mon_fichier);
http://www.developpez.net/forums/sho...d.php?t=142957
pourquoi ne pas avoir continuer la meme question sur le meme topic ????????????????????
c'es exactement ce que j'ai fait,mais qd j'ouvre le fichier,je trouve 1 petit carré à la place de l'entier!!!!?:roll:
NAN........Citation:
Envoyé par BnY
Citation:
c'es exactement ce que j'ai fait,mais qd j'ouvre le fichier,je trouve 1 petit carré à la place de l'entier!!!!?:roll:
C'est normal "fputc" écrit des caractères, pas des entiers.
mdrr oui effectivement lool le pire c'est que j'ai été voir dans le livre comme la proposé ED et j'ai meme pas fait gaffe ke cété putc et non fputc lool
bon par contreca le fait nan ??Code:putc(c,mon_fichier);
ah nan meme pas lool
alors je suggere
Code:
1
2
3 char c='1'; fputc(c,monfich);
Va te coucher...Citation:
Envoyé par BnY
et puis si t'en as plein d'entiers comme ca, tu te sers de itoa() qui convertit un entier en caractere... et hop le tour est joué :P
lol oui oui bon ca va ED je sais je sais je reflechis pas avant de parler lol :P
Au hasard, on fini par y arriver.Citation:
Envoyé par BnY
En maintetant, j'ai un entier qui vaut 123. Je fais comment ?
Si tu me dis
tu te prends 2 claques...Code:
1
2
3
4 fputc('1',monfich); fputc('2',monfich); fputc('3',monfich);
ben tu te sers de itoa... ca marche pas ?? :?
Pas standard. sprintf(), peut être ?Citation:
Envoyé par BnY
ça me donne le meme résultat(un carré au lieu d'1 entier)!!!
et ce n'est pas du hasard lol je me suis contenté de suivre tes conseils et de plus reflechir avant de parler... j'ai mieux lu la définition de putc() et hop ;)
Tu parles de quoi ? tu réponds à qui ?Citation:
Envoyé par naazih
Merci d'utiliser le bouton http://www.developpez.net/forums/ima...tons/quote.gif
tu m'expliques deux secondes pourquoi c'est pas standard (enfin qu'est ce que t'entends par "pas standard") steup ??:) comme ca je le saurais ;)Citation:
Pas standard. sprintf(), peut être ?
"sprintf" n'est pas fait pour les fichiers et pas standard veut dire que ca ne fait pas partie de la norme C, du "vrai langage".Citation:
Envoyé par BnY
Rien ne vaut les pages de "man":
http://man.developpez.com/man3/sprintf.3.php
Tu cherches itoa dans le document normalisé international (ISO) qui définit le C,Citation:
Envoyé par BnY
http://emmanuel-delahaye.developpez.com/notes.htm#norme
et tu vois écrit 0 answers.
Tout simplement parce que le langage C ne définit pas itoa().
Tu l'as peut être sur ta machine, il sert peut être à faire quelque chose que tu connais, mais sur la mienne, soit je ne l'ai pas, soit je l'ai mais il sert à autre chose soit il fait la même chose mais il a un paramètre en plus ou en mois, soit c'est le même...
Quand on s'écarte du standard, tout peut arriver.
Alors qu'il existe le très standard sprintf() qui fait la conversion comme il faut.
(mais dans ce cas, pourquoi ne pas utiliser directement fprintf() et on en parle plus...)
oki donc si j'ai bien compris depuis le temps que je suis inscrit, ce n'est pas portable c'est ca ??Citation:
pas standard veut dire que ca ne fait pas partie de la norme C, du "vrai langage".
pour ca tu t'arranges avec ED lol.Citation:
"sprintf" n'est pas fait pour les fichiers
oki ;);) !!!! au moins ca a le merite d'etre tres explicite ;)Citation:
Tu cherches itoa dans le document normalisé international (ISO) qui définit le C,
http://emmanuel-delahaye.developpez.com/notes.htm#norme
et tu vois écrit 0 answers.
Tout simplement parce que le langage C ne définit pas itoa().
Tu l'as peut être sur ta machine, il sert peut être à faire quelque chose que tu connais, mais sur la mienne, soit je ne l'ai pas, soit je l'ai mais il sert à autre chose soit il fait la même chose mais il a un paramètre en plus ou en mois, soit c'est le même...
Quand on s'écarte du standard, tout peut arriver.
Alors qu'il existe le très standard sprintf() qui fait la conversion comme il faut.
(mais dans ce cas, pourquoi ne pas utiliser directement fprintf() et on en parle plus...)
merci bien!
http://emmanuel-delahaye.developpez....s.htm#standardCitation:
Envoyé par BnY
Je n'ai fait que proposer une alternative à itoa(). Je ne sais pas ce que tu avais derrière la tête quand tu as proposer ça...Citation:
[sprintf()]
pour ca tu t'arranges avec ED lol.
Je suis peut être allé un peu trop vite. En regardant la doc de plus près, on constate que le "int" est converti en "unsigned char". Donc on doit être capable d'écrire n'importe quel octet (donc de 0 à 255) dans le flux. Evidement, si le flux est la sortie standard on risque d'avoir quelque surprise.Citation:
Envoyé par crocodilex
Mais écrire :n'est pas du tout déconnant.....Code:fputc( 1, monfich)
byte plutôt non?Citation:
n'importe quel octet
tout dépend du pays dans lequel tu codes :mrgreen:Citation:
Envoyé par seriousme
Aucune difference
In french : octetCitation:
Envoyé par seriousme
En anglais : byte
Byte en mémoire, octet dans un flux.Citation:
Envoyé par seriousme
NON.Citation:
Envoyé par crocodilex
Sujet épuisé ad nauseam...
byte = multiplet
octet = octet
je sais pas... une envie d'aider !!Citation:
Je n'ai fait que proposer une alternative à itoa(). Je ne sais pas ce que tu avais derrière la tête quand tu as proposer ça...
c'est de ses erreurs qu'on apprend: si je ne l'avais pas proposé, ma prof me l'ayant conseillé, je n'aurais peut etre pas su avant lontemps que ce n'était pas standard ( oui je sais j'aurais pu me renseigner... mais bon on a tendance a faire un peu trop confiance aux profs..)
donc je ne regrette pas d'avoir dit une betise !! au moins j'aurais appris quelquechose ;);)
Rien à voir.Citation:
Envoyé par FidoDido®
byte >= 8 bits
octet == 8 bits.
Ah ben mince alors, moi qui fait de l'électronique depuis 20 ans, je ne connaissais pas cette nuance.Citation:
Envoyé par Emmanuel Delahaye
Une recherche s'impose....8O
SI.Citation:
Envoyé par Gruik
byte/multiplet = plus petit objet adressable d'une architecture donnée. En C : >= 8-bit.
octet/octet : quantité d'information d'exactement 8-bit tels qu'on en trouve dans les réseaux de données par exemple...
Sujet récurrent...
Ok, désolé
Et en anglais, ils peuvent faire la difference?
Alors, juste pour la culture, comment traduis-tu octet en anglais ?