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 :

Arrêter la saisie quand on rencontre une ligne vide


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 79
    Points : 42
    Points
    42
    Par défaut Arrêter la saisie quand on rencontre une ligne vide
    Bonsoir à tous,

    Je dois faire un petit programme qui lit un tableau d'évenements sur mon entrée standard et rentre le nombre d'évenements dans pnombre, il lit des événement tant que je n'ai pas rentré une ligne vide.

    Voici ce que j'ai fais :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    evenement *lireEvenements(int *pnombre) {
    int i=1;
    evenement *result;
    result = (evenement *) malloc(sizeof(evenement));
    while (???){
    result = (evenement *) malloc(sizeof(evenement) * i);
    *pnombre++;
    result[i] = lireEvenement();
    i++;
    }
    return result;
    }
    Hélas je ne sais pas quoi mettre dans ma condition d'arrêt sur le while, je ne sais pas comment exprimer le "tant qu'on ne rencontre pas une ligne vide..."

    Si cela peut vous aider, voici ma fonction lire evenement() qui lit un seul evenement :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    evenement lireEvenement() {
    evenement even;
    even.date = lireDate();
    int c;
    // Boucle permettant de vider le flux entrant.
    while ( ((c = getchar()) != '\n') && c != EOF){
    };
    printf("Entrez un evenement : \n");
    scanf("%[^\n]",even.chaine);
    return (even);
    }
    cdt,

    guillaume

  2. #2
    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 allezlolo Voir le message
    Hélas je ne sais pas quoi mettre dans ma condition d'arrêt sur le while, je ne sais pas comment exprimer le "tant qu'on ne rencontre pas une ligne vide..."
    Bah, c'est du simple bon sens... Une ligne est une chaine de caractère terminée par un '\n'. Si le premier élément d'une ligne (indice 0) est '\n', c'est une ligne vide.

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

Discussions similaires

  1. [XL-2003] Lancer une macro quand on supprime une ligne
    Par nicoaix dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/12/2013, 16h08
  2. Saisie textbox limitée sur une ligne ?
    Par PPN83 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/10/2010, 12h05
  3. Saisie automatique de toute une ligne ?
    Par Phileufeu dans le forum Excel
    Réponses: 7
    Dernier message: 12/11/2008, 12h15
  4. Réponses: 2
    Dernier message: 20/07/2006, 19h40
  5. Découper un champ texte quand on rencontre une virgule
    Par jeanfrancois dans le forum Langage
    Réponses: 7
    Dernier message: 28/04/2006, 12h10

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