• STATISTIQUES
  • Il y a eu un total de 2 membres et 14484 visiteurs sur le site dans les dernières 24h pour un total de 14 486 personnes!


    Membres: 2 433
    Discussions: 3 585
    Messages: 32 832
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] Le site du zero
    Découvrez gratuitement la programmation (C, C++, PHP, MySQL, XHTML, CSS...), Linux, le Mapping, la modé...
    Programmation
    [EN] SecurityFocus
    SecurityFocus a été conçu pour faciliter la discussion sur des sujets liés la sécu...
    Vulnérabilités
    [FR] Forum-Webmaster
    Une communauté webmaster pour apporter / recevoir de l'aide en création de site internet. Webmaster...
    Webmaster
    [EN] Gekko
    Site de challenge présenter sous la forme d'une quête. Vous êtes un agent secret qui répond sous le nom...
    Challenges
    [EN] Hack this site
    Basic: 11, Realistic: 17, Application: 18, Programming: 12, Extbasic: 14, Javascript: 7, Stego: 17
    Challenges
    [FR] Developpez.net
    Un forum communautaire qui se veut pour les développeurs en générale. Avec presque 500 000 membr...
    Programmation
    [EN] Big-Daddy
    Big-Daddy est site internet communautaire avec un effectif diversifié, y compris des artistes, des programmeur...
    Hacking

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
(C) restriction scanf
06-11-2012, 15h36 (Modification du message : 06-11-2012, 15h38 par InFamouZz.)
Message : #1
InFamouZz Hors ligne
Membre actif
*



Messages : 76
Sujets : 21
Points: 3
Inscription : Dec 2011
(C) restriction scanf
salut
est-ce que quelqu'un sait comment on pourrais faire pour que dans un scanf l'utilisateur ne puisse taper qu'une seul caractère et que dans un autre scanf il ne puisse taper qu'un seul nombre
merci de votre aide Shy
+1 (0) -1 (0) Répondre
06-11-2012, 15h44
Message : #2
ark Hors ligne
Psyckomodo!
*****



Messages : 1,033
Sujets : 48
Points: 317
Inscription : Sep 2011
RE: (C) restriction scanf
scanf() permet de parser / formater une entrée d'une certaine façon. elle n'autorisera cependant pas la restriction a la saisie. Pour ça, je te conseille de te tourner vers les termcaps (Terminal capabilities) qui te permettra de n'autoriser la saisie que d'un seul caractère par exemple. (On appelle ca mettre son terminal en mode raw)

Tu pourras trouver un exemple de code ici: http://www.cs.uleth.ca/~holzmann/C/system/ttyraw.c
+1 (0) -1 (0) Répondre
06-11-2012, 18h14
Message : #3
sakiir Hors ligne
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de
*



Messages : 411
Sujets : 51
Points: 34
Inscription : Sep 2012
RE: (C) restriction scanf
alul ave strlen() et si 'est trop grand, et bien tu prend les mesures adequate !
+1 (0) -1 (0) Répondre
13-11-2012, 00h55
Message : #4
InFamouZz Hors ligne
Membre actif
*



Messages : 76
Sujets : 21
Points: 3
Inscription : Dec 2011
RE: (C) restriction scanf
c'est bon mais je voudrais que l'utilisateur ne saisies uniquement un chiffre sinon ca lui demande de reesayer
c'est pas possible ?
+1 (0) -1 (0) Répondre
13-11-2012, 08h47
Message : #5
supersnail Hors ligne
Éleveur d'ornithorynques
*******



Messages : 1,614
Sujets : 72
Points: 466
Inscription : Jan 2012
RE: (C) restriction scanf
Me semble que Ark y'a répondu..

Sinon ben http://www.google.fr/ ...
Mon blog

Code :
push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp

"VIM est merveilleux" © supersnail
+1 (0) -1 (0) Répondre
13-11-2012, 10h37
Message : #6
InFamouZz Hors ligne
Membre actif
*



Messages : 76
Sujets : 21
Points: 3
Inscription : Dec 2011
RE: (C) restriction scanf
oui mais je debute et je voudrais utiliser scanf()
+1 (0) -1 (0) Répondre
13-11-2012, 10h38 (Modification du message : 13-11-2012, 10h47 par supersnail.)
Message : #7
supersnail Hors ligne
Éleveur d'ornithorynques
*******



Messages : 1,614
Sujets : 72
Points: 466
Inscription : Jan 2012
RE: (C) restriction scanf
On t'a dit, c'est pas possible avec scanf (cf encore la réponse de Ark).

Edit: "je débute" n'est pas une excuse valable.
Mon blog

Code :
push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp

"VIM est merveilleux" © supersnail
+1 (0) -1 (0) Répondre
15-11-2012, 16h19
Message : #8
sakiir Hors ligne
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de
*



Messages : 411
Sujets : 51
Points: 34
Inscription : Sep 2012
RE: (C) restriction scanf
je t'ai envoyé une fonction qui permetait de le faire !! Smile
+1 (0) -1 (0) Répondre
15-11-2012, 20h09
Message : #9
-Mat-
Non-enregistré



 
RE: (C) restriction scanf
Il est toujours possible d'utiliser une autre fonction que tu devras faire toi même après scanf() pour vérifier si l'entrée correspond à un nombre. Je peux toujours te donner des indices :
Il faut d'abord vérifier que chaque caractère de la chaine correspond à un chiffre (donc dans le codage ASCII : de 30 à 39) et qui renvoie 1 si c'est un nombre et 0 si c'est autre chose (donc moyen de mettre cette fonction comme condition de la boucle).

Ensuite tu peux utiliser strtol qui permet de changer une chaine en nombre (en long par contre).

Pour limiter le nombre de caractère à écrire à l'écran, c'est pas possible avec scanf() mais après tu peux toujours choisir de ne prendre que le premier caractère : chaine[0].
positive (0) negative (0) Répondre
15-11-2012, 20h21
Message : #10
Luxerails Hors ligne
Bon membre
*



Messages : 267
Sujets : 6
Points: 67
Inscription : Aug 2011
RE: (C) restriction scanf
(15-11-2012, 20h09)-Mat- a écrit : (donc dans le codage ASCII : de 30 à 39)

En hexadécimal hein ! sinon en base 10 c'est de 48 à 57.
+1 (0) -1 (0) Répondre
15-11-2012, 21h03
Message : #11
-Mat-
Non-enregistré



 
RE: (C) restriction scanf
(15-11-2012, 20h21)Luxerails a écrit :
(15-11-2012, 20h09)-Mat- a écrit : (donc dans le codage ASCII : de 30 à 39)

En hexadécimal hein ! sinon en base 10 c'est de 48 à 57.

Sorry ! J'ai encore un peu de mal avec les bases.

Et sinon InFamouZz, tu peux évidemment créer ta propre fonction qui transforme une chaine en nombre mais comme tu dis que tu es débutant.
positive (0) negative (0) Répondre
15-11-2012, 22h08
Message : #12
ark Hors ligne
Psyckomodo!
*****



Messages : 1,033
Sujets : 48
Points: 317
Inscription : Sep 2011
RE: (C) restriction scanf
(15-11-2012, 21h03)-Mat- a écrit : Et sinon InFamouZz, tu peux évidemment créer ta propre fonction qui transforme une chaine en nombre mais comme tu dis que tu es débutant.

recoder la fonction atoi n'est pas très complique en soi. Il suffit de réfléchir un tout petit peu a comment stocker le résultat au fur et a mesure, c'est tout a fait faisable, et un très bon exercice pour un débutant.
+1 (0) -1 (0) Répondre
15-11-2012, 22h24
Message : #13
-Mat-
Non-enregistré



 
RE: (C) restriction scanf
Je vais d'ailleurs la faire moi-même ! Je viens d'imaginer le code.

Après pourquoi autant s'embêter alors que Python gère les chaine beaucoup plus facilement Smile
positive (0) negative (0) Répondre
15-11-2012, 22h27
Message : #14
ark Hors ligne
Psyckomodo!
*****



Messages : 1,033
Sujets : 48
Points: 317
Inscription : Sep 2011
RE: (C) restriction scanf
(15-11-2012, 22h24)-Mat- a écrit : Après pourquoi autant s'embêter alors que Python gère les chaine beaucoup plus facilement Smile

Et bien le jour ou tu n'auras pas la possibilité d'utiliser python pour une raison quelconque, tu seras bien content de pouvoir le faire en C :p
Apres, que python le gere mieux, je suis pas d'accords, il existe en nombre enorme de fonctions de lib C qui permettent de faire presque autant de traitement qu'en python Wink
+1 (0) -1 (0) Répondre
16-11-2012, 18h19
Message : #15
-Mat-
Non-enregistré



 
RE: (C) restriction scanf
Oui sauf qu'en Python, la gestion est directe / inné (je cherche le mot adapté mais je l'ai pas trouvé).
Après c'est vrai qu'avec les bibliothèques tous les traitements de bases sont déjà écrits quelques soient les langages et directement intégrés.
positive (0) negative (0) Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 5 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut