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 :

Identifiants valides


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Par défaut Identifiants valides
    Bonjour à tous,

    Alors voila j'ai un problème avec ce code:
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    #include <stdio.h>
    #include <stdlib.h>
    #include <ctype.h>
     
    typedef struct
    {
        char *essai;
    }nb;
     
    int main(void)
    {
        int N, i;
        nb *test;
     
        printf("Donnez le nombre de variable a tester: ");
        scanf("%d", &N);
        test = malloc(N*sizeof(nb));
        if (test == NULL)
        {
            printf("Erreur: allocation échoué");
        }
        for (i=0;i<N;i++)
        {
            printf("Entrez vos propositions: ");
            gets(test[i].essai);
        }
        for (i=0;i<N;i++)
        {
            if (test[i].essai[i] == '-' || isdigit(test[i].essai[1]) || test[i].essai[i] < 0)
            {
                printf("NO");
            }
            else
            {
                printf("YES");
            }
        }
        free(test);
        return 0;
    }
    Pourquoi quand je l'exécute il m'affiche deux fois d'un coup "Entrez vos propositions". Merci d'avance (ce code sert à savoir si le nom taper est valide ou non pour une variable ou une fonction)

  2. #2
    Membre éclairé Avatar de emprex
    Homme Profil pro
    auto-entrepreneur
    Inscrit en
    Octobre 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : auto-entrepreneur
    Secteur : Services à domicile

    Informations forums :
    Inscription : Octobre 2007
    Messages : 219
    Par défaut
    dans ta deuxieme boucle l'une des conditions n'est -elle pas incomplète ?

  3. #3
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut correction balises
    Gao,

    Moi je vois surtout ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        for (i=0;i<N;i++)
        {
            printf("Entrez vos propositions: ");
            gets(test[i].essai);
        }
    alors que les pointeurs test[i].essai ne sont pas initialisés, pas de mémoire réservée...

  4. #4
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    gets() est officiellement obsolète et déprécié par la norme, elle ne doit plus être utilisé (et n'aurait jamais dû l'être d'ailleurs).

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Par défaut
    Citation Envoyé par droggo Voir le message
    alors que les pointeurs test[i].essai ne sont pas initialisés, pas de mémoire réservée...
    J'ai pourtant alloué la mémoire qu'il fallait avec le malloc non ? je comprend pas ce que tu veux dire

    Pour gets je l'ai remplacer par scanf.

  6. #6
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Citation Envoyé par scary Voir le message
    J'ai pourtant alloué la mémoire qu'il fallait avec le malloc non ?
    Pour test oui mais pas pour essai!

  7. #7
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Hie,
    Citation Envoyé par scary Voir le message
    J'ai pourtant alloué la mémoire qu'il fallait avec le malloc non ? je comprend pas ce que tu veux dire
    Pour le tableau de structures, mais pas chaque pointeur dans chaque structure !!

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Par défaut
    A d'accord et comment je peux faire cela ? je fais un malloc pour chaque possibilité ? vous auriez pas un petit exemple que lequel je pourrais m'appuyer svp?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Valider un numéro CAS (identifiant d'une substance chimique)
    Par Cyclemmanuel dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/03/2012, 18h00
  2. L'identifiant d'un contrôle pour un Validator
    Par zooffy dans le forum Développement Web avec .NET
    Réponses: 2
    Dernier message: 03/12/2010, 00h09
  3. Identifier les cellules qui contienent une Validation
    Par A@Lah dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/10/2007, 13h09
  4. [VB6] Evenement validate
    Par grosjej dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 05/09/2002, 15h46

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