IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Limiter la saisie à un nombre de caractère


Sujet :

C

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 47
    Points : 27
    Points
    27
    Par défaut Limiter la saisie à un nombre de caractère
    Bonjour, ceci est mon premier post, et pas le dernier j'espère

    Alors je vous explique mon problème, j'ai un projet en cours dans lequel je dois faire un jeu en C, enfin tout un tralala quoi, et je desespere car je ne trouve pas comment limiter la saisie au clavier de caractères.

    Plus clairement, quand je lance mon .exe, l'ordinateur me demander un nom pour mes personnages et je veux limiter leur nom à 20.
    Mais ce qui me pose problème c'est que je ne veux pas seulement limiter, je veux aussi que le curseur se bloque au bout de 20 caractères.
    J'ai fait de nombreuses recherches, j'ai trouvé certains points intéressant au niveau du fgets, getc ou strncpy mais rien de très concluant


    Donc si vous avez quelques idées, je suis ouverte à tout !
    Merci

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,
    Citation Envoyé par 0nn2belle Voir le message
    Plus clairement, quand je lance mon .exe, l'ordinateur me demander un nom pour mes personnages et je veux limiter leur nom à 20.
    Pas possible en C standard, il faut travailler caractère par caractère.
    Il existe des bibliothèques comme conio, ncurses, PDcurses...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 47
    Points : 27
    Points
    27
    Par défaut
    Est-ce qu'on peut compter le nombre de caractères rentrer en même temps et bloquer la saisie arrivé à ce caractère butoir?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 47
    Points : 27
    Points
    27
    Par défaut
    Okay, dans ce cas, si j'utilise la bibliothèque conio, qu'est-ce qui me permet de réaliser ce cas ?




    PS : Merci pour tes réponses, ça pourrait me débloquer un point important dans mon projet

  5. #5
    Invité(e)
    Invité(e)
    Par défaut
    Citation Envoyé par 0nn2belle Voir le message
    Okay, dans ce cas, si j'utilise la bibliothèque conio, qu'est-ce qui me permet de réaliser ce cas ?
    Bah, il va falloir broder avec getch :
    Citation Envoyé par wikipedia
    getch: Reads a character directly from the console without buffer, and without echo.
    Don on aura un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #define SIZE 20
    int i;
    int c;
    /* +1 pour le '\0' final */
    char nom[SIZE+1];
    for(i = 0; i < SIZE; ++i) {
        nom[i] = 0;
        c = getch();
        /* on vérifie que getch a retourné un caractère normal 
           attention, le test écrit ici est certainement insuffisant, il
           faut regarder dans la doc de getch pour savoir ce qu'il 
           retourne en cas d'erreur ou autre. */
        if(c == '\n') {
            /* caractère de fin de saisie */
            break;
        } else {
            /* caractère normal */
            nom[i] = c;
        }
    }
    nom[SIZE] = 0;
    Après, en cherchant sur google, je pense qu'on peut trouver plein de choses.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 47
    Points : 27
    Points
    27
    Par défaut
    Ouais j'ai trouvé plein de trucs dans mes recherches précédentes, mais étant débutante (c'est ma première année), j'avoue que je ne comprend pas tout....

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 47
    Points : 27
    Points
    27
    Par défaut
    Aussi, j'ai un autre problème, je crée un nombre aléatoire
    Mais le problème c'est qu'il est aléatoire qu'en fonction de l'horloge, donc si j'exécute le chiffre aléatoire rapidement et plusieurs fois, j'obtiens toujours le même chiffre.

    Comment puis-je faire pour qu'il soit vraiment aléatoire à chaque exécution ?

  8. #8
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Citation Envoyé par 0nn2belle
    Aussi, j'ai un autre problème, je crée un nombre aléatoire
    Mais le problème c'est qu'il est aléatoire qu'en fonction de l'horloge, donc si j'exécute le chiffre aléatoire rapidement et plusieurs fois, j'obtiens toujours le même chiffre.

    Comment puis-je faire pour qu'il soit vraiment aléatoire à chaque exécution ?
    Pourquoi rand() me renvoie toujours la même valeur ?

  9. #9
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par 0nn2belle Voir le message
    Ouais j'ai trouvé plein de trucs dans mes recherches précédentes, mais étant débutante (c'est ma première année), j'avoue que je ne comprend pas tout....
    Fait de ton mieux et poste ton code. N'oublie pas qu'il faut aussi gérer la correction (BACKSPACE c'est à dire '\b' en C)...
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. [Débutant] Limiter le nombre de caractères saisi dans un datagriview
    Par gmano dans le forum C#
    Réponses: 1
    Dernier message: 30/08/2012, 23h51
  2. Limite Textarea, Ligne et Nombre de caractères par ligne
    Par michelS dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/11/2010, 14h00
  3. [JTextArea] limiter le nombre de caractères
    Par spoutyoyo dans le forum Composants
    Réponses: 5
    Dernier message: 14/09/2007, 15h45
  4. [JTextField] Limiter le nombre de caractères
    Par thomas_strass dans le forum Composants
    Réponses: 2
    Dernier message: 08/09/2004, 14h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo