Probleme dans le compilateur c

Résolu
maths_info Messages postés 5 Date d'inscription mardi 2 mai 2006 Statut Membre Dernière intervention 10 janvier 2007 - 23 nov. 2006 à 03:41
maths_info Messages postés 5 Date d'inscription mardi 2 mai 2006 Statut Membre Dernière intervention 10 janvier 2007 - 23 nov. 2006 à 19:15
salut, j'ai un petit probleme, quand j'ecris une chaine de caractere en c et je le demande de m'affiche il m'affiche des symbole comme le code ascii. je sais pas ou le probleme.
NB: le programme ne contient aucun error.j'ai essaie avec des programme simple et ma donne la meme chose.
 svp donne moi la solution

5 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
23 nov. 2006 à 16:28
Ton programme a BEAUCOUP de problèmes. En voici une version corrigé rapidement mais fonctionnelle:

#include <stdio.h>
#include <stdlib.h>

typedef struct cc
{
    char nom[200], pre[200];
    int age;
    struct cc *next;
}per;
per *last 0, *first 0;

void entre (void)
{
    while(1)
    {
        char c;
        per *liste;

        fflush(stdin);

        printf("voulez vous entrer un patient (o/n)? "); scanf("%c", &c);
        if(c != 'o') break;

        liste = (per*)malloc(sizeof(per));

        fflush(stdin);
        printf("entre le nom: "); gets(liste->nom);
        printf("entre le prenom: "); gets(liste->pre);
        printf("entre l'age: ");  scanf("%d", &liste->age);
        liste->next = 0;        if(last !0) last->next liste;
        last = liste;
        if(first 0) first liste;
    }
}

void affiche (void)
{
    int i = 1;
    per *c = first;

    if(c == 0)
        return;

    while(c != NULL)
    {
        per *tmp;
        printf("la %d personne est %s %s, %d ans\n", i, c->nom, c->pre, c->age);
        i++;
        tmp = c->next; free(c);
        c = tmp;
    }
}

void main (void)
{
    entre();
    affiche();
    system("pause");
}

Je crois que tu devrais réviser quelque notion du C.

Bonne continuation.

C++ (@++)<!--
3
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
23 nov. 2006 à 03:58
Avec si peu de détail, difficile à dire.

Il est possible que ton programme soit en UNICODE mais que la chaine soit ASCII (ou l'inverse).
Tu as peut-être oublier d'ajouter le 0 final à la fin de ta chaine.

Sans un morceau de code (le bout de code fautif), on ne peut pas vraiment t'aider.

C++ (@++)<!--
0
maths_info Messages postés 5 Date d'inscription mardi 2 mai 2006 Statut Membre Dernière intervention 10 janvier 2007
23 nov. 2006 à 05:21
voici le code.

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
typedef struct cc {
        char nom[200];
        char pre[200];
        int age;
  struct cc *s;
  }per;
void entre(per **liste)
{   char c;
per *el;
*liste=NULL;
while(printf("voulez vous enrter un patient o/n"),fflush(stdin), scanf("%c",&c), (c=='o'))
{
el=(per*)malloc(sizeof(per));
printf("entre le nom"); fflush(stdin);
scanf("%c",&el->nom);
printf("entre le prenom");            fflush(stdin);
gets(el->pre);
printf("entre l'age");
scanf("%d",&el->nom);
el->s=*liste;
*liste=el;
}                    }


void affiche( per *liste)
{ int i;
while(liste!=NULL)
{
printf("les %d personne est",i);
printf("%s",liste->nom);
i++;
liste=liste->s;
}}
void main()
{
per *liste;
entre(&liste);
affiche(liste);
getch();
}


 
0
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
23 nov. 2006 à 07:44
scanf("%c",&el->nom);
....
scanf("%d",&el->nom);
1) a la place de scanner l'age tu scan le nom
2)tu t'es pas trempé ici? le nom est une chaine de caracters donc soit tu fais un gets comme pour le prenom soit tu utilise scanf mais avec %s et non %c

<hr size="2" width="100%" />Trafic web gratuit!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maths_info Messages postés 5 Date d'inscription mardi 2 mai 2006 Statut Membre Dernière intervention 10 janvier 2007
23 nov. 2006 à 19:15
salut, merci SAKingdom votre programme marche bien, mais notre prof de cours nous a donne la methode qui j'ai deja fais, oui il y a des erreur de frappe comme (%c,%s,%d).en tout cas merci
0
Rejoignez-nous