CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Bloquage scanf ( C )

Pseudo supprimé
Pseudo supprimé 06 septembre 2013 à 15:19:03

Bonjour à tous !

Voila, j'ai un petit renseignement à vous demander.

si j'écrit ( en C ) :

scanf("%f*%f", &f1, &f2);

le programme ne se bloque pas automatiquement si l'utilisateur n'entre pas l'étoile lors de la saisie clavier. Pourquoi ? normalement cela n'est-il pas censé bloquer le déroulement du programme sur cette fonction ?

En effet je constate que le programme continue de se dérouler en prenant l'ancienne valeur affecté à f2.

Bref, pourquoi le programme ne bug pas à ce niveau la, quand l'utilisateur ne saisi pas l'étoile ?

dark_drow
dark_drow
Niveau 15
06 septembre 2013 à 16:31:17

non, et pourquoi le programme devrait planter ?

Engineer
Engineer
Niveau 12
06 septembre 2013 à 18:55:41

scanf prend ce qu'il y a sur le buffer, si tu veux quelque chose de plus fiable et facile utilise d'abord gets et sscanf.

chris_27
chris_27
Niveau 10
06 septembre 2013 à 19:30:53

le programme ne se bloque pas automatiquement si l'utilisateur n'entre pas l'étoile lors de la saisie clavier. Pourquoi ? "
:d) le type de retour de scanf est int et non void. à quoi cela peut-il bien servir d'avoir un int en réponse ? :-)

Engineer :
Fiable et gets dans la même phrase... alors là je me marre. :rire:
gets c'est fondamentalement pas sécurisé. Mettre un gets dans un programme = ajouter au minimum un bug.

Au minimum, utilise plutôt fgets.

Schiffer
Schiffer
Niveau 10
06 septembre 2013 à 19:58:01

Renseigne-toi sur les méthodes de saisie sécurisées

Engineer
Engineer
Niveau 12
06 septembre 2013 à 20:14:03

fgets et sscanf oui. Claude Delannoy aurait faux. :-)

Pseudo supprimé
Pseudo supprimé 07 septembre 2013 à 08:57:43

merci pour vos réponse, je tente avec fgets et sscanf

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment