Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

scanf et fgets

38 réponses
Avatar
Julien
bonjour

Je fais actuellement les exercices de http://www.france-ioi.org/
d'ailleurs si vous avez d'autres sites avec des exercices, je suis
int=E9ress=E9.

Je me posais la question, un scanf est-il dangereux pour r=E9cup=E9rer un
entier saisi par l'utilisateur.

est ce que :=20

char chaine[1000];
signed int valeur;
=20
(void) fgets(chaine, (int) sizeof(chaine), stdin);
valeur =3D atoi(chaine);

est plus s=FBr que=20

signed int valeur;
scanf("%i",&valeur);

d'autant que l=E0 je ne peux pas mettre conna=EEtre la taille maximale de
l'entier.

J'ai essay=E9 un char chaine[INT_MAX] mais =E7a n'a pas compil=E9.

Merci de vos avis.

--=20
Julien <Juke@free.fr>

8 réponses

1 2 3 4
Avatar
Richard Delorme

En l'occurence, la convention est BEAUCOUP plus répandue que la norme.

On peut concevoir des compilateurs « pour langage genre C » avec un type
caractère (au hasard, UTF-16) différent du type base de l'adressage (/byte/
pour le langage C, octet pour les architectures courantes). Mais il se
trouve que par cohérence ou sympathie avec C, la plupart de ces langages
garde l'orthographe «char» pour désigner... les bytes ! (Exemple le plus
frappant, Java.)


Euh... en Java, char et byte sont deux types très différents : un char
est un entier non signé codé sur 2 octets (valeur de 0 à 65535) et
servant à coder les caractères unicode (un genre de wchar_t), et byte un
entier signé codé sur un octet (valeur de -128 à +127).

--
Richard

Avatar
Thierry PINELLI
Richard Delorme wrote:

Euh... en Java, char et byte sont deux types très différents : un char
est un entier non signé codé sur 2 octets (valeur de 0 à 65535) et
servant à coder les caractères unicode (un genre de wchar_t), et byte un
entier signé codé sur un octet (valeur de -128 à +127).


ici c'est fr.comp.lang.c

donc ruby n'est pas à l'odre du jour

Avatar
Richard Delorme

ici c'est fr.comp.lang.c


Je ne lis plus souvent ce groupe de discussion, mais je m'aperçois que
l'on y trouve toujours quelqu'un pour y dire une connerie.
Je t'invite à lire la charte de ce groupe, tu t'apercevras que ce groupe
est dédié aux discussions *autour* du langage C, ce qui fait de ma
remarque, dans le contexte donné par Antoine Leca, une discussion tout à
fait en charte.

donc ruby n'est pas à l'odre du jour


Ça tombe bien, puisque je n'ai parlé de Ruby nulle part.

--
Richard

Avatar
Thierry PINELLI
Richard Delorme wrote:

ici c'est fr.comp.lang.c


Je ne lis plus souvent ce groupe de discussion, mais je m'aperçois que
l'on y trouve toujours quelqu'un pour y dire une connerie.
Je t'invite à lire la charte de ce groupe, tu t'apercevras que ce groupe
est dédié aux discussions *autour* du langage C, ce qui fait de ma
remarque, dans le contexte donné par Antoine Leca, une discussion tout à
fait en charte.


on parlera donc du basic et de ses byte, ou du cobol

donc ruby n'est pas à l'odre du jour


Ça tombe bien, puisque je n'ai parlé de Ruby nulle part.


tu as parlé de java et de ses char


Avatar
Marc Boyer
On 2007-09-30, Richard Delorme wrote:
ici c'est fr.comp.lang.c
Je ne lis plus souvent ce groupe de discussion, mais je m'aperçois que

l'on y trouve toujours quelqu'un pour y dire une connerie.


Et oui... Mais bon... Le rapport Signal/Bruit reste acceptable...

Marc Boyer
--
Si tu peux supporter d'entendre tes paroles
Travesties par des gueux pour exciter des sots
IF -- Rudyard Kipling (Trad. André Maurois)


Avatar
Nicolas S.
Marc Boyer a écrit:

Et oui... Mais bon... Le rapport Signal/Bruit reste acceptable...


D'autant que l'information est intéressante.
Le bruit, c'est la critique et ce qui vient derrière (moi compris, bien
sûr).

--
Nicolas S.

Avatar
Pierre Maurette

[...]

Et oui... Mais bon... Le rapport Signal/Bruit reste acceptable...


D'autant que le calcul devient ardu. Il va falloir passer par la limite
du quotient Signal/Bruit quand ils tendent simultanément vers 0.
Voilà, c'était ma contribution à Bruit, sans rien ajouter à Signal.

--
Pierre Maurette

Avatar
Harpo
Marc Boyer wrote:

On 2007-09-30, Richard Delorme wrote:
ici c'est fr.comp.lang.c
Je ne lis plus souvent ce groupe de discussion, mais je m'aperçois

que l'on y trouve toujours quelqu'un pour y dire une connerie.


Et oui... Mais bon... Le rapport Signal/Bruit reste acceptable...


Vous me payez combien pour que je continue mes vacances et n'invalide
pas votre appréciation ?
(ceci n'est pas du rackett, juste un avertissement)

--
http://patrick.davalan.free.fr/



1 2 3 4