Fonction scanf

Fermé
commandant roxy Messages postés 15 Date d'inscription jeudi 24 mai 2012 Statut Membre Dernière intervention 11 juin 2013 - 2 juin 2013 à 19:16
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 4 juin 2013 à 21:21
bonjour à tous,
On m'appelle commandant roxy et je suis très ravi de vous poser une question qui me tracasse depuis longtemps
en effet je suis debutant dans la programmation en C et la fonction scanf me pose beaucoup de probleme dans la mesure ou elle me renvoie des resultats incompatibles avec ceux escomptés.
merci pour votre bien et aimable attention
amicallement commandant roxy

3 réponses

slt Roxy, si c'est le dimunitif de Roxanne, ou un homme comme t'a signalé que t'était un commandant, alors mon commandant, j'vais te donner un exemple et voir si tu l'as respecter dans la saisie de ton code:
include <stdio.h>
int main()
{
int a;
printf("saisissez votre code");
scanf("%d", &a);
printf("votre code est %d", a);
return 0;
}
commence par l'exécution de ce programme. S'il compile, alors ce ne serait pas une erreur de ton logiciel mais plutôt le tien;
scanf est une fonction de lecture. Si tu écrit par exemple printf("saisissez votre code"); et par la suite tu n'applique pas scanf("%d", &a); en t'assurant que tu as respecté la syntaxe, i.e en ayant vérifié que "%d", &a et surtout le point virgule(;) à la fin des parenthèses, alors ton programme ne compilera pas; dans le cas contraire, tu peux chercher d'autres programme utilisant le langage C pour t'aider dans ta programmation comme: Qt creator, CodeBlock, etc...
c'est tout c'ke j'peux faire pour toi.
@ bientôt et bonne chance.
0
commandant roxy Messages postés 15 Date d'inscription jeudi 24 mai 2012 Statut Membre Dernière intervention 11 juin 2013
3 juin 2013 à 15:28
bonjour solem@
merci pour ta reponse en verité je me rend compte que c'etait une erreur de syntaxe de ma part.
Mais à vrai dire, j'ai toujours un petit soucis.
en effet, si j'entre par exemple une suite de plusieurs même chiffre par exemple 555555555555555555555 au lieu d'avoir le meme chiffre j'obtiens d'autre chiffre .
merci
0
armasousou Messages postés 1267 Date d'inscription dimanche 16 août 2009 Statut Membre Dernière intervention 30 décembre 2016 83
4 juin 2013 à 14:00
Alors, par ou commencer lol !

scanf prend 2 parametres, un char* (on va dire une "phrase") et un pointeur vers un type choisi.

par exemple

"%d" fait référence au entier (int) et donc le second parametre doit être un pointeur sur entier, "%lf" fait reference au nombre decimaux (double) etc etc

par exemple si je veux que l'utilisateur me donne une valeure, que je stock dans une variable A, j'écrirai

int A;
scanf("%d", &A); //Je veux un entier, donc "%d", et je met la valeur //dans laquelle je veux la stocké avec un petit & devant.

scanf a aussi une valeure d eretour : elle retourne 1 si elle a réussi à lire, 0 sinon
ainsi écrire

int a, A;
a = scanf("%d", &A);

est cohérent, on vérifie si ca a marché ^^

Ensuite, pour la suite de chiffre, les "int" ne peuvent pas stocké des nombres infinis, ya une limite :)
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
4 juin 2013 à 21:21
scanf a aussi une valeure d eretour : elle retourne 1 si elle a réussi à lire, 0
scanf() retourne le nombre de variables converties.
0