• STATISTIQUES
  • Il y a eu un total de 0 membres et 30304 visiteurs sur le site dans les dernières 24h pour un total de 30 304 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] Lost-chall
    Site de challenge présenté sous la forme de différente saison. Pour passer une saison vous devez avoir accumulÃ...
    Challenges
    [EN] Rankk
    Site de challenge construit sur le principe d'une pyramide à 9 level. Level 1: 60,Level 2: 72,Level 3: 68,Lev...
    Challenges
    [FR] Secuser
    Actualité de la sécurité informatique, fiches virus et hoax, alertes par email, antivirus gratui...
    Hacking
    [FR] PHP France
    Pour tout savoir sur le PHP, en français. Vous trouverez des tutoriels, des exemples, des astuces, toute la do...
    Hacking
    [FR] Zenk-Security
    La communauté zenk-security a pour objet principal la sécurité informatique, nous sommes des tou...
    Hacking
    [EN] hax.tor
    50 level de challenges mélangés
    Challenges
    [EN] SecurityFocus
    SecurityFocus a été conçu pour faciliter la discussion sur des sujets liés la sécu...
    Vulnérabilités

  • 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,609
Sujets : 71
Points: 465
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,609
Sujets : 71
Points: 465
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