Problemme d'execution sous emacs sur eepc

amani -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,j'ai acheter un eepc recemment,et l'ai installer dessus ubuntu(emacs et tous le tralala!)
le problemme est que j'arrive à compiler mais je n'arrive pas à executer.

le programme que j'ai essayé est le suivant:

#include <stdio.h>
#include <string.h>
#define CAR 'e'
#define LGMAX 132

main()
{
char texte[LGMAX+1];
char * adr;
int ncar;
printf("donner un texte terminé par return\n");
gets(texte);
ncar=0;
adr=texte;
while (adr=strchr(adr,CAR))
{ncar++;
adr++;
}
printf("votre texte comporte %d fois le caractere %c",ncar,CAR);
}

j'ai inclu ce programme dans un fichier appelé kiki.c
En suite dans le terminal j'exécute en faisant ./kiki après bien sur la phase de compilation
ça ne marche pas!
a l'aide, please!
Configuration: Linux
Firefox 3.0

1 réponse

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Ça compile ça ? Ton main n'a même pas de type de retour !
    #include <stdio.h>
    #include <string.h>
    #define CAR 'e'
    #define LGMAX 132
    
    int main(){ // main retourne 0 quand tout va bien
        char texte[LGMAX+1];
        char *adr;
        int ncar;
        printf("donner un texte terminé par return\n");
        gets(texte);
        ncar = 0;
        adr = texte;
        while( (adr = strchr(adr,CAR)) ){
            ++ncar;
            ++adr;
        }
        printf("votre texte comporte %d fois le caractere %c\n",ncar,CAR);
        return 0;
    }

    Ensuite on compile :
    (mando@aldur) (~) $ gcc -W -Wall plop.c
    /tmp/ccGw6hOA.o: In function `main':
    plop.c:(.text+0x31): warning: the `gets' function is dangerous and should not be used.
    (mando@aldur) (~) $ ./a.out
    donner un texte terminé par return
    j'aime les tapirs
    votre texte comporte 2 fois le caractere e

    On peut écrire plus simplement le programme comme suit :
    #include <stdio.h>
    #include <string.h>
    #define CAR 'e'
    #define LGMAX 132
    
    int main(){ // main retourne 0 quand tout va bien
        char texte[LGMAX+1];
        unsigned i,len,ncar = 0;
        printf("donner un texte terminé par return\n");
        gets(texte);
        len = strlen(texte);
        for(i=0;i<len;++i){
            if(texte[i] == CAR) ++ncar;
        }
        printf("votre texte comporte %d fois le caractere %c",ncar,CAR);
        return 0;
    }
    Bonne chance
    1