Problemme d'execution sous emacs sur eepc

Fermé
amani - 24 oct. 2008 à 09:15
mamiemando Messages postés 33630 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 14 avril 2025 - 24 oct. 2008 à 13:28
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!

1 réponse

mamiemando Messages postés 33630 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 14 avril 2025 7 841
24 oct. 2008 à 13:28
Ç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