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 :

Comment afficher 2 noms avec un espacement dans une meme variable CHAR


Sujet :

C

  1. #1
    Invité
    Invité(e)
    Par défaut Comment afficher 2 noms avec un espacement dans une meme variable CHAR
    Bonjour

    j'ai commencer un code pour crée un itineraire

    mon probleme c'est si je tape comme nom du trajet marseilleparis là ça marche par contre si je tape marseille paris j'ai que marseille afficher j'aimerai savoir comme faire pour le programme m'affiche mareille paris avec l'espacement entre les 2 noms ?

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    //-------- Appelle des Librairie
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <string.h>
     
    //--------Création des macros
    #define NOM_TRAJET        (45)
    #define VILLE_DEPART      (45)
    #define DISTANCE1         (4)
    #define VILLE_SUIVANTE1   (45)
    #define DISTANCE2         (4)
    #define VILLE_SUIVANTE2   (45)
    #define DISTANCE3         (4)
    #define VILLE_SUIVANTE3   (45)
    #define DISTANCE4         (4)
    #define VILLE_ARRIVEE     (45)
     
     
    //-------- Création d'une  Structure
    typedef struct
    {
        char trajet[NOM_TRAJET];
        char villeDepart[VILLE_DEPART];
        char distance1[DISTANCE1];
        char villeSuiv1[VILLE_SUIVANTE1];
        char distance2[DISTANCE2];
        char villeSuiv2[VILLE_SUIVANTE2];
        char distance3[DISTANCE3];
        char villeSuiv3[VILLE_SUIVANTE3];
        char distance4[DISTANCE4];
        char villeArrivee[VILLE_ARRIVEE];
    } Parcours;
     
    //--------Les  Fonctions :
     
    // Fonction  Pour afficher le titre du programme
     
    void titre()
    {
        printf("\t\t\t *******************************\n");
        printf("\t\t\t *   Gestion d'un itineraire   *\n");
        printf("\t\t\t *******************************\n");
        printf("\n\n");
    }
     
     
     
     
     
    //Fonction pour la  Création du parcours
     
    void creation_parcours()
    {
        Parcours p;
        printf("-- Creation de votre itineraire --\n");
        printf("Quel est le nom de votre trajet :");
        scanf("%s",p.trajet);
        printf("Votre trajet est : %s ",p.trajet);
     
     
     
     
     
    }
     
     
     
    ////--------Programme principale
     
    int main()
    {
        //Appelle des fonctions
        titre();
        creation_parcours();
        return 0;
    }

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Le problème vient sans doute de scanf("%s",p.trajet); car le formateur %s est fait pour lire des caractères jusqu'à rencontrer un caractère blanc, comme une espace. Utilise fgets() à la place. D'ailleurs, il faut mieux toujours utiliser fgets() pour récupérer du texte entré par l'utilisateur et ensuite l'analyser avec sscanf() plutôt que directement utiliser scanf().

  3. #3
    Invité
    Invité(e)
    Par défaut
    merci

    je mets fgets()

  4. #4
    Invité
    Invité(e)
    Par défaut
    j'ai trouver aussi s
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    canf("%44[^\n]", p.trajet);
    que veux dire sscanf()?

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    sscanf() veut dire "scanf() sur une chaîne de caractères au lieu de stdin" ("string scanf").
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Merci
    Dernière modification par Invité ; 27/09/2013 à 15h16.

  7. #7
    Invité
    Invité(e)
    Par défaut
    je rencontre un probleme avec la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     printf("Votre trajet  s'appelle : %s\n",p.trajet);
    si je la met dans ma fonction creation_parcours elle m'as affiche le contenu de ma variable si par contre je l'ai mets à ailleurs elle m'as affiche des caracteres etranges.


    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    //-------- Appelle des Librairie
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <string.h>
     
    //--------Création des macros
    #define NOM_TRAJET        (45)
    #define VILLE_DEPART      (45)
    #define VILLE_SUIVANTE1   (45)
    #define DISTANCE1         (10)
    #define VILLE_SUIVANTE2   (45)
    #define DISTANCE2         (10)
    #define VILLE_SUIVANTE3   (45)
    #define DISTANCE3         (10)
    #define VILLE_ARRIVEE     (45)
     
     
     
     
    //-------- Création d'une  Structure
    typedef struct
    {
        char trajet[NOM_TRAJET];
        char villeDepart[VILLE_DEPART];
        char villeSuiv1[VILLE_SUIVANTE1];
        char distance1[DISTANCE1];
        char villeSuiv2[VILLE_SUIVANTE2];
        char distance2[DISTANCE2];
        char villeSuiv3[VILLE_SUIVANTE3];
        char distance3[DISTANCE3];
        char villeArrivee[VILLE_ARRIVEE];
     
     
    } Parcours;
     
    //--------Les  Fonctions :
     
    // Fonction  Pour afficher le titre du programme
     
    void titre()
    {
        printf("\t\t\t *******************************\n");
        printf("\t\t\t *   Gestion d'un itineraire   *\n");
        printf("\t\t\t *******************************\n");
        printf("\n");
    }
     
     
     
     
     
    //Fonction pour la  Création du parcours
     
    void creation_parcours()
    {
     
        Parcours p;
        titre();// on affche le tire
        printf("-- Cr\x82""ation de votre itineraire --\n\n");
        printf("Quel est le nom de votre trajet :");
        scanf("%44[^\n]", p.trajet);
        //fgets(p.trajet,NOM_TRAJET,stdin);
        printf("Entrez la ville de depart:");
        fgets(p.villeDepart,VILLE_DEPART,stdin);
        printf("Saisir le ville suivante1:");
        fgets(p.villeSuiv1,VILLE_SUIVANTE1,stdin);
        printf("Quel est la distance en KM  entre ces 2 Villes :");
        fgets(p.distance1,DISTANCE1,stdin);
        printf("Saisir le ville suivante2:");
        fgets(p.villeSuiv2,VILLE_SUIVANTE2,stdin);
        printf("Quel est la distance en KM  entre ces 2 Villes :");
        fgets(p.distance2,DISTANCE2,stdin);
        printf("Saisir le ville suivante3:");
        fgets(p.villeSuiv3,VILLE_SUIVANTE3,stdin);
        printf("Quel est la distance en KM  entre ces 2 Villes :");
        fgets(p.distance3,DISTANCE3,stdin);
        printf("Entrez la ville d'arriv\x82""e:");
        fgets(p.villeArrivee,VILLE_ARRIVEE,stdin);
        system("cls");// On effacer l''ecran pour afficher le trajet
     }
     
     
    ////--------Programme principal
     
    int main()
    {
    Parcours p;
    //Appelle  d'une  fonction
        creation_parcours();
        printf("Votre trajet  s'appelle : %s\n",p.trajet);
     
     
        return 0;
     
     
     
     
     
     
    }

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    p dans main() et p dans creation_parcours() sont deux variables différentes.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Ah d'accord et comment je peux faire pour qu'elles soient pas différentes ?
    Dernière modification par Invité ; 27/09/2013 à 15h08.

  10. #10
    Membre averti
    Homme Profil pro
    Cadre informatique
    Inscrit en
    Avril 2013
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cadre informatique

    Informations forums :
    Inscription : Avril 2013
    Messages : 183
    Points : 435
    Points
    435
    Par défaut
    Le créer dans le main comme tu l'as fait avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int main(void)
    {
        Parcours p;
        ...
    }
    et créer une fonction prenant en paramètre une variable de type Parcours telle que:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ton_type_de_retour creation_parcours(Parcours p)
    {
        ...
    }
    Et ne pas oublier de faire appel à la fonction dans le main AVEC p comme paramètre!

    EDIT: Désolé de la bourde, effectivement je lui ai mis comment passer par la fonction mais j'ai pas pris en compte quand il disait "qu'elle soient pas differente".

  11. #11
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ça ne la modifiera pas. Il faudra utiliser un pointeur:
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ton_type_de_retour creation_parcours(Parcours * pParc)
    {
        ...
    }
     
    int main(void)
    {
        Parcours parc;
        creation_parcours(&parc);
    }
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Merci de ton conseils

  13. #13
    Invité
    Invité(e)
    Par défaut
    Bonjour
    je souhaite calcules les 3 variables Distances et afficher le resultat

    mon probleme c'est le calcul marche pas :
    C:\Backup\CCours\testt\main.c||In function 'main'
    C:\Backup\CCours\testt\main.c|99|error: invalid operands to binary + (have 'int *' and 'int *')|



    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    //-------- Appelle des Librairie
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <string.h>
     
    //--------Création des macros
    #define NOM_TRAJET        (45)
    #define VILLE_DEPART      (45)
    #define VILLE_SUIVANTE1   (45)
    #define DISTANCE1         (10)
    #define VILLE_SUIVANTE2   (45)
    #define DISTANCE2         (10)
    #define VILLE_SUIVANTE3   (45)
    #define DISTANCE3         (10)
    #define VILLE_ARRIVEE     (45)
     
     
     
     
    //-------- Création d'une  Structure
    typedef struct
    {
        char trajet[NOM_TRAJET];
        char villeDepart[VILLE_DEPART];
        char villeSuiv1[VILLE_SUIVANTE1];
        char distance1[DISTANCE1];
        char villeSuiv2[VILLE_SUIVANTE2];
        char distance2[DISTANCE2];
        char villeSuiv3[VILLE_SUIVANTE3];
        Char distance3[DISTANCE3];
        char villeArrivee[VILLE_ARRIVEE];
     
     
    } Parcours;
     
    //--------Les  Fonctions :
     
    // Fonction  Pour afficher le titre du programme
     
    void titre()
    {
        printf("\t\t\t *******************************\n");
        printf("\t\t\t *   Gestion d'un itineraire   *\n");
        printf("\t\t\t *******************************\n");
        printf("\n");
    }
     
     
     
     
     
    //Fonction pour la  Création du parcours
     
    Parcours creation_parcours()
    {
     
        Parcours p;
        titre();// on affche le tire
        printf("-- Cr\x82""ation de votre itineraire --\n\n");
        printf("Quel est le nom de votre trajet :");
        fgets(p.trajet,NOM_TRAJET,stdin);
        printf("Entrez la ville de d\x82""part:");
        fgets(p.villeDepart,VILLE_DEPART,stdin);
        printf("Saisir le ville suivante1:");
        fgets(p.villeSuiv1,VILLE_SUIVANTE1,stdin);
        printf("Quel est la distance en KM  entre ces 2 Villes :");
        fgets(p.distance1,DISTANCE1,stdin);
        printf("Saisir le ville suivante2:");
        fgets(p.villeSuiv2,VILLE_SUIVANTE2,stdin);
        printf("Quel est la distance en KM  entre ces 2 Villes :");
        fgets(p.distance2,DISTANCE2,stdin);
        printf("Saisir le ville suivante3:");
        fgets(p.villeSuiv3,VILLE_SUIVANTE3,stdin);
        printf("Quel est la distance en KM  entre ces 2 Villes :");
        fgets(p.distance3,DISTANCE3,stdin);
        printf("Entrez la ville d'arriv\x82""e:");
        fgets(p.villeArrivee,VILLE_ARRIVEE,stdin);
        system("cls");// On effacer l''ecran pour afficher le trajet
        return (p);
    }
     
     
    ////--------Programme principal
     
    int main()
    {
        int totalKms;
        Parcours p;
        p = creation_parcours();;
    // Affichage du trajet
        titre();
        printf("Votre trajet  s'appelle: %s\n",p.trajet);
        printf("Vous partez de: %s\n",p.villeDepart);
        printf("Ensuite vous passez par:  %s\n",p.villeSuiv1);
        printf("Puis vous continez la route vers:  %s\n",p.villeSuiv2);
        printf("Puis direction:  %s\n",p.villeSuiv3);
        printf("Vous arrivez \x85 :  %s\n",p.villeArrivee);
        totalKms =(p.distance1 + p.distance2 + p.distance3);
     
     
     
        return 0;
    Dernière modification par Invité ; 06/09/2013 à 11h30.

  14. #14
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Pourquoi tes distances sont-elles déclarées comme des tableaux d'entiers? On dirait que tu as tenté de déclarer des "entiers à dix chiffres" comme s'il s'agissait d'une base de données Oracle...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  15. #15
    Invité
    Invité(e)
    Par défaut
    Comment tu ferais toi svp?
    Dernière modification par Invité ; 27/09/2013 à 15h08.

  16. #16
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Je les déclarerais simplement en tant qu'entiers:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    typedef struct st_parcours
    {
        char trajet[NOM_TRAJET];
        char villeDepart[VILLE_DEPART];
        char villeSuiv1[VILLE_SUIVANTE1];
        int distance1;
        char villeSuiv2[VILLE_SUIVANTE2];
        int distance2;
        char villeSuiv3[VILLE_SUIVANTE3];
        int distance3;
        char villeArrivee[VILLE_ARRIVEE];
     
    } Parcours;
    Puis pour la saisie, scanf() + nettoyage (typiquement fpurge) ou bien fgets() + strtol()...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  17. #17
    Invité
    Invité(e)
    Par défaut
    Je n'ai pas compris que c'est fpurge et strtol ?
    Dernière modification par Invité ; 06/09/2013 à 19h21.

  18. #18
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    • fpurge() et fclean() sont des fonctions qu'on trouve un peu partout sur le forum, parce qu'elles sont utiles dès qu'on fait des saisies avec fgets() ou scanf().
      Elles font le ménage au cas où l'utilisateur aurait tapé plus sur la ligne que la taille de buffer qu'on a donné, et retirent le \n saisit par fgets().
    • strtol() est une fonction pour convertir une chaîne de caractères en nombre entier. La gestion d'erreur (texte saisi au lieu d'un nombre, nombre trop grand, etc.) est assez facile avec cette fonction.


    L'usage habituel c'est qu'on fait un fclean() après chaque fgets(), et un fpurge() après chaque scanf().
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  19. #19
    Invité
    Invité(e)
    Par défaut
    merci
    j'ai resolu le probleme en rajoutant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    distance1 = atoi(p.distance1);
    distance2 = atoi(p.distance2);
    distance3 = atoi(p.distance3);
    totalKms = (distance1 + distance2 + distance3);
    printf("%d\n", totalKms);

  20. #20
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    atoi() est plus ou moins déprécié au profit de strtol(), parce que sa gestion d'erreur est moins bonne.
    Mais pour avoir un nombre dès la saisie, tu peux utiliser directement scanf().
    Code C : 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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    typedef struct st_parcours
    {
        char trajet[NOM_TRAJET];
        char villeDepart[VILLE_DEPART];
        char villeSuiv1[VILLE_SUIVANTE1];
        int distance1;
        char villeSuiv2[VILLE_SUIVANTE2];
        int distance2;
        char villeSuiv3[VILLE_SUIVANTE3];
        int distance3;
        char villeArrivee[VILLE_ARRIVEE];
     
    } Parcours;
     
    Parcours creation_parcours()
    {
        Parcours p;
     
        titre();// on affche le tire
        printf("-- Cr\x82""ation de votre itineraire --\n\n");
     
        /*Note: Si l'affichage ne se termine pas par \n, 
          un fflush() est nécessaire pour être sûr que ce sera affiché
          avant le fgets() sur toutes les plate-formes.*/
        printf("Quel est le nom de votre trajet : ");
        fflush(stdout);
        fgets(p.trajet, NOM_TRAJET, stdin);
        fclean(p.trajet, stdin);
     
        printf("Entrez la ville de d\x82""part : " );
        fflush(stdout);
        fgets(p.villeDepart,VILLE_DEPART,stdin);
        fclean(p.villeDepart, stdin);
     
        printf("Saisir le ville suivante1 : ");
        fflush(stdout);
        fgets(p.villeSuiv1,VILLE_SUIVANTE1,stdin);
        fclean(p.villeSuiv1, stdin);
     
        printf("Quel est la distance en KM  entre ces 2 Villes : ");
        fflush(stdout);
        scanf("%d", &p.distance1);
        fpurge(stdin);
     
        printf("Saisir le ville suivante2 : ");
        fflush(stdout);
        fgets(p.villeSuiv2,VILLE_SUIVANTE2,stdin);
        fclean(p.villeSuiv2, stdin);
     
        printf("Quel est la distance en KM  entre ces 2 Villes : ");
        fflush(stdout);
        scanf("%d", &p.distance2);
        fpurge(stdin);
     
        printf("Saisir le ville suivante3 : ");
        fflush(stdout);
        fgets(p.villeSuiv3,VILLE_SUIVANTE3,stdin);
        fclean(p.villeSuiv3, stdin);
     
        printf("Quel est la distance en KM  entre ces 2 Villes : ");
        fflush(stdout);
        scanf("%d", &p.distance3);
        fpurge(stdin);
     
        printf("Entrez la ville d'arriv\x82""e : ");
        fflush(stdout);
        fgets(p.villeArrivee,VILLE_ARRIVEE,stdin);
        fclean(p.villeArrivee, stdin);
     
        system("cls");// On effacer l''ecran pour afficher le trajet
        return (p);
    }
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/03/2013, 16h49
  2. Réponses: 3
    Dernier message: 19/01/2010, 09h53
  3. Afficher des images avec des espaces dans le nom
    Par Space Cowboy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 15/03/2007, 07h18
  4. Réponses: 4
    Dernier message: 16/06/2006, 03h29
  5. Réponses: 23
    Dernier message: 07/02/2006, 17h55

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