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 :

boucle avec chaine de caracteres


Sujet :

C

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 7
    Points
    7
    Par défaut boucle avec chaine de caracteres
    bonjouer je veux faire un programme qui lis une chaine de caractere a partir du clavier et un entier afin de les mettre dans des variables, le probleme qui se pose, il saute l'etape de la saisie de la chaine de caracteres et il passe a l'etape de saisie de l'entier!

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    #include "stdlib.h"
    #include "stdio.h"
    #include "conio.h"
    #include "string.h"
     
    /**********declaration de la structure**********/
    struct maillon{ int x;
    					 char t[30];
    					 struct maillon *suivant;};
    /**********************************************/
    maillon *l;
    int i,n;
    /************la fonction créer liste************/
    void creer_liste(maillon *&tete)
    	 {
    	 tete=NULL;
    	 }
    /*****la fonction ajout element au debut*******/
    void ajout_debut(maillon *&tete,int y,char u[30])
    	{
    	maillon *nouveau;
    	nouveau=(maillon*)malloc(sizeof(struct maillon));
    	nouveau->suivant=tete;
    	tete=nouveau;
    	nouveau->x=y;
    	strcpy(nouveau->t, u);
    	}
    /*la fonction affichant les elements de la liste*/
    void afficher(maillon *tete)
    	{
    	for(maillon *m=tete;m!=NULL;m=m->suivant)
    		{
    		printf("%s\t",m->t);
    		printf("%d\n",m->x);
    		}
    	}
    /**********************************************/
    void main()
    {
    creer_liste(l);
     
    int e;
    char v[30];
    printf("donnez le nombre d'elements n="); scanf("%d",&n);
    clrscr();
    for(i=0;i<n;i++)
    	{
    	printf("donnez le nom de l'etudiant numero %d:\n",i+1);
    	gets(v);
    	printf("donnez la note de l'etudiant numero %d:\n",i+1);
    	scanf("%d",&e);
    	ajout_debut(l,e,v);
    	}
     
    clrscr();
    afficher(l);
    }
    /***********************************************/
    Fichiers attachés Fichiers attachés

  2. #2
    Membre régulier Avatar de nicodn02
    Profil pro
    Consultant .NET
    Inscrit en
    Mars 2007
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant .NET

    Informations forums :
    Inscription : Mars 2007
    Messages : 263
    Points : 97
    Points
    97
    Par défaut
    essaye pour la lecture au clavier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    char *fgets (char *s, int size, FILE *stream);

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 7
    Points
    7
    Par défaut re
    ça n'a rien avoir avec les fichiers!

  4. #4
    Membre actif
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 487
    Points : 294
    Points
    294
    Par défaut

    Tu lis avec gets est gets c'est beug

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 487
    Points : 294
    Points
    294
    Par défaut
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    #include <stdlib.h>
    #include <stdio.h>
    #include <conio.h>
    #include <string.h>
     
    /**********declaration de la structure**********/
    struct maillon{ int x;
    char t[30];
    struct maillon *suivant;};
    /**********************************************/
    maillon *l;
    int i,n;
    /************la fonction créer liste************/
    void creer_liste(maillon *&tete)
    {
    tete=NULL;
    }
    /*****la fonction ajout element au debut*******/
    void ajout_debut(maillon *&tete,int y,char u[30])
    {
    maillon *nouveau;
    nouveau=(maillon*)malloc(sizeof(struct maillon));
    nouveau->suivant=tete;
    tete=nouveau;
    nouveau->x=y;
    strcpy(nouveau->t, u);
    }
    /*la fonction affichant les elements de la liste*/
    void afficher(maillon *tete)
    {
    for(maillon *m=tete;m!=NULL;m=m->suivant)
    {
    printf("%s\t",m->t);
    printf("%d\n",m->x);
    }
    }
    /**********************************************/
    void main()
    {
    creer_liste(l);
     
    int e;
    char v[30];
    printf("donnez le nombre d'elements n="); scanf("%d",&n);
    //clrscr();
    for(i=0;i<n;i++)
    {
    printf("donnez le nom de l'etudiant numero %d:\n",i+1);
    getchar();
    gets (v);
    printf("donnez la note de l'etudiant numero %d:\n",i+1);
    scanf("%d",&e);
    ajout_debut(l,e,v);
    }
     
    //clrscr();
    afficher(l);
    }
    Maintenant ça marche mais je te conseille de ne pas lire avec gets
    A+

  6. #6
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 7
    Points
    7
    Par défaut re
    merci, ça marche bien, juste une question, comment tu fais pour que ton texte apparait en couleur comme dans le compilateur?

  7. #7
    Membre actif
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 487
    Points : 294
    Points
    294
    Par défaut
    Citation Envoyé par reapa Voir le message
    merci, ça marche bien, juste une question, comment tu fais pour que ton texte apparait en couleur comme dans le compilateur?
    Il y a la balise [CODE] tu dois la selectionnée avon de copié ton code

  8. #8
    Membre régulier Avatar de nicodn02
    Profil pro
    Consultant .NET
    Inscrit en
    Mars 2007
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant .NET

    Informations forums :
    Inscription : Mars 2007
    Messages : 263
    Points : 97
    Points
    97
    Par défaut
    par précision, fgets ne fonctionne pas toujours avec les fichiers, mais avec des flux ...
    fgets sur un stdin fonctionne très bien

Discussions similaires

  1. [SQL]Probleme avec chaine de caracteres
    Par acheo dans le forum Access
    Réponses: 4
    Dernier message: 31/03/2007, 22h28
  2. Boucle avec chaine vide : je comprends pas
    Par Zapan dans le forum Langage
    Réponses: 8
    Dernier message: 14/02/2007, 17h27
  3. Pb avec chaines de caracteres
    Par optixpro dans le forum C++
    Réponses: 2
    Dernier message: 03/11/2006, 17h37
  4. probleme glibc avec chaine de caracteres.
    Par Mr_Chut dans le forum C
    Réponses: 16
    Dernier message: 25/07/2006, 14h06
  5. Pb Update avec chaine de caractere
    Par JuJu° dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/05/2003, 15h58

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