Problemme d'execution sous emacs sur eepc
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!
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
-
Ç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