Problème compilation avec Code Blocks
Fermé
Antology
Messages postés
14
Date d'inscription
lundi 25 mai 2009
Statut
Membre
Dernière intervention
10 octobre 2010
-
3 sept. 2010 à 20:04
Antology Messages postés 14 Date d'inscription lundi 25 mai 2009 Statut Membre Dernière intervention 10 octobre 2010 - 4 sept. 2010 à 11:25
Antology Messages postés 14 Date d'inscription lundi 25 mai 2009 Statut Membre Dernière intervention 10 octobre 2010 - 4 sept. 2010 à 11:25
A voir également:
- Problème compilation avec Code Blocks
- Telecharger code blocks avec compilateur - Télécharger - Langages
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
5 réponses
ghuysmans99
Messages postés
2496
Date d'inscription
jeudi 14 juillet 2005
Statut
Contributeur
Dernière intervention
5 juin 2016
339
4 sept. 2010 à 00:55
4 sept. 2010 à 00:55
Essaie d'inclure aussi stdlib.h ...
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
4 sept. 2010 à 00:58
4 sept. 2010 à 00:58
Bonjour,
Le compilateur te précise qu'il ne connait pas la fonction fonction lire_clavier. Elle est définie où ?
C'est dommage d'utiliser exit() au lieu de return dans ce cas. Cela t'oblige à inclure stdlib.h
Tu utilises aussi la fonction strlen, il faut donc penser à inclure string.h
Cdlt,
Le compilateur te précise qu'il ne connait pas la fonction fonction lire_clavier. Elle est définie où ?
C'est dommage d'utiliser exit() au lieu de return dans ce cas. Cela t'oblige à inclure stdlib.h
Tu utilises aussi la fonction strlen, il faut donc penser à inclure string.h
Cdlt,
Antology
Messages postés
14
Date d'inscription
lundi 25 mai 2009
Statut
Membre
Dernière intervention
10 octobre 2010
8
4 sept. 2010 à 11:01
4 sept. 2010 à 11:01
Bonjour,
Tout d'abord je vous remercie pour vos 2 réponses.
J'ai appliqué vos conseils et voici maintenant le code source :
/* ex2-5.c */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char buffer[256];
printf("Entrez votre nom et appuyez sur Entrée:\n");
lire_clavier(buffer, sizeof(buffer));
printf("\nVotre nom contient %d caractères.", strlen(buffer));
exit(EXIT_SUCCESS);
}
------------------------
Le message d'erreur est devenu :
||=== ex2-5.c, Debug ===|
D:\MonEspace\Documents\JV - Informatique\Programmation\Exercices programmation C\ex2-5.c\main.c||In function 'main':|
D:\MonEspace\Documents\JV - Informatique\Programmation\Exercices programmation C\ex2-5.c\main.c|11|warning: implicit declaration of function 'lire_clavier'|
obj\Debug\main.o||In function 'main':|
D:\MonEspace\Documents\JV - Informatique\Programmation\Exercices programmation C\ex2-5.c\main.c|11|undefined reference to '_lire_clavier'|
||=== Build finished: 1 errors, 1 warnings ===|
Encore un peu d'aide svp ?
Je voudrais dire aussi que j'ai recopié exactement ce qui est écrit dans le livre. Comment se fait-il qu'il ait oublié d'inclure stdlib.h et string.h ?
Et qu'est-ce que leur insertion permet de faire de plus au programme ?
Et qu'en est-il de la fonction lire_clavier qui n'est pas définie ?
Je trouve ça gros qu'il y ait autant d'erreurs et d'oublis dans un livre d'apprentissage du C.
Merci
Tout d'abord je vous remercie pour vos 2 réponses.
J'ai appliqué vos conseils et voici maintenant le code source :
/* ex2-5.c */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char buffer[256];
printf("Entrez votre nom et appuyez sur Entrée:\n");
lire_clavier(buffer, sizeof(buffer));
printf("\nVotre nom contient %d caractères.", strlen(buffer));
exit(EXIT_SUCCESS);
}
------------------------
Le message d'erreur est devenu :
||=== ex2-5.c, Debug ===|
D:\MonEspace\Documents\JV - Informatique\Programmation\Exercices programmation C\ex2-5.c\main.c||In function 'main':|
D:\MonEspace\Documents\JV - Informatique\Programmation\Exercices programmation C\ex2-5.c\main.c|11|warning: implicit declaration of function 'lire_clavier'|
obj\Debug\main.o||In function 'main':|
D:\MonEspace\Documents\JV - Informatique\Programmation\Exercices programmation C\ex2-5.c\main.c|11|undefined reference to '_lire_clavier'|
||=== Build finished: 1 errors, 1 warnings ===|
Encore un peu d'aide svp ?
Je voudrais dire aussi que j'ai recopié exactement ce qui est écrit dans le livre. Comment se fait-il qu'il ait oublié d'inclure stdlib.h et string.h ?
Et qu'est-ce que leur insertion permet de faire de plus au programme ?
Et qu'en est-il de la fonction lire_clavier qui n'est pas définie ?
Je trouve ça gros qu'il y ait autant d'erreurs et d'oublis dans un livre d'apprentissage du C.
Merci
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
4 sept. 2010 à 11:10
4 sept. 2010 à 11:10
Eh oui, le C n'est pas maitrisé non plus par les rédacteurs de livre ^^.
int main()
Le prototype de main sans argument est : int main(void)
exit(EXIT_SUCCESS);
C'est très laid dans la fonction main. On utilise généralement : return EXIT_SUCCESS; ou tout simplement return 0;
printf("\nVotre nom contient %d caractères.", strlen(buffer));
C'est mieux de mettre un \n après le "%d caractères." avant de quitter le programme. Rien ne stipule dans la norme que le flush écran doit avoir lieu avant de quitter le programme.
Sinon t'as pas fait tout ce que je t'ai dit.
Le compilateur te précise qu'il ne connait pas la fonction fonction lire_clavier. Elle est définie où ?
Si tu préfères, la fonction "lire_clavier" n'est pas une fonction reconnue en C. Il faut la créer. Tant que c'est pas le cas, ça marchera pas...
int main()
Le prototype de main sans argument est : int main(void)
exit(EXIT_SUCCESS);
C'est très laid dans la fonction main. On utilise généralement : return EXIT_SUCCESS; ou tout simplement return 0;
printf("\nVotre nom contient %d caractères.", strlen(buffer));
C'est mieux de mettre un \n après le "%d caractères." avant de quitter le programme. Rien ne stipule dans la norme que le flush écran doit avoir lieu avant de quitter le programme.
Sinon t'as pas fait tout ce que je t'ai dit.
Le compilateur te précise qu'il ne connait pas la fonction fonction lire_clavier. Elle est définie où ?
Si tu préfères, la fonction "lire_clavier" n'est pas une fonction reconnue en C. Il faut la créer. Tant que c'est pas le cas, ça marchera pas...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Antology
Messages postés
14
Date d'inscription
lundi 25 mai 2009
Statut
Membre
Dernière intervention
10 octobre 2010
8
4 sept. 2010 à 11:25
4 sept. 2010 à 11:25
Merci de continuer à m'aider fiddy.
Mais je suis débutant. Pour l'instant, ce que tu me dis est du charabia.
Quelle différence entre int main() et int main (void) ?
Quelle différence entre exit(EXIT_SUCCESS); et return EXIT_SUCCESS; ou return 0; ?
En quoi est-ce mieux de mettre \n après le %d caractères ?
Que signifie "Rien ne stipule dans la norme que le flush écran doit avoir lieu avant de quitter le programme." ?
Et pour finir, si la fonction lire_clavier n'est pas crée, et bien je ne sais pas comment le faire.
Merci.
PS:(c'est un test)
Mais je suis débutant. Pour l'instant, ce que tu me dis est du charabia.
Quelle différence entre int main() et int main (void) ?
Quelle différence entre exit(EXIT_SUCCESS); et return EXIT_SUCCESS; ou return 0; ?
En quoi est-ce mieux de mettre \n après le %d caractères ?
Que signifie "Rien ne stipule dans la norme que le flush écran doit avoir lieu avant de quitter le programme." ?
Et pour finir, si la fonction lire_clavier n'est pas crée, et bien je ne sais pas comment le faire.
Merci.
PS:(c'est un test)
sdfdgsgsdg