Programmantion c
Fermé
fanimed
Messages postés
84
Date d'inscription
samedi 16 février 2008
Statut
Membre
Dernière intervention
3 juillet 2009
-
29 févr. 2008 à 22:23
eigeneyes - 3 mars 2008 à 20:48
eigeneyes - 3 mars 2008 à 20:48
14 réponses
Bonjour,
En fait #define age = 18 n'est pas une constante, c'est une directive de précompilation, c'est à dire qu'avant de compiler le code source, le compilateur remplace toutes les occurrences du mot age par le mot 18. Dons age n'occupe pas de place en mémoire au moment de l'exécution. D'ailleurs c'est pas autorisé d'écrire age = i++ ; parce que age n'est pas un identifiant et n'a pas d'adresse.
Par contre Const int age=18; définit bien une variable de type entier initialisé à 18. Dans ce cas age à une adresse mémoire et donc peut etre accessible en lecture mais pas en écriture.
J'espère que c'est plus clair pour toi.
Salut.
En fait #define age = 18 n'est pas une constante, c'est une directive de précompilation, c'est à dire qu'avant de compiler le code source, le compilateur remplace toutes les occurrences du mot age par le mot 18. Dons age n'occupe pas de place en mémoire au moment de l'exécution. D'ailleurs c'est pas autorisé d'écrire age = i++ ; parce que age n'est pas un identifiant et n'a pas d'adresse.
Par contre Const int age=18; définit bien une variable de type entier initialisé à 18. Dans ce cas age à une adresse mémoire et donc peut etre accessible en lecture mais pas en écriture.
J'espère que c'est plus clair pour toi.
Salut.
fanimed
Messages postés
84
Date d'inscription
samedi 16 février 2008
Statut
Membre
Dernière intervention
3 juillet 2009
18
1 mars 2008 à 09:51
1 mars 2008 à 09:51
oui c'est un peu plus clair...merci...
jai aussi des problemes avec les IDE que j'utilise a savoir code blocks et Dev c++...lorsque je compile et j'execute mon code source la console apparait quelque fractions de seconde et disparait..a quoi est du cela????
jai aussi des problemes avec les IDE que j'utilise a savoir code blocks et Dev c++...lorsque je compile et j'execute mon code source la console apparait quelque fractions de seconde et disparait..a quoi est du cela????
Bonjour,
Je pense que c'est parce que, dés que l'exécution du programme est finie, l'IDE reprend la main et la fenêtre d'exécution disparait. Il doit certainement y avoir une option qui laisse la fenêtre d'exécution affichée ou qui permet de basculer d'une fenêtre à l'autre. Un astuce consiste à terminer ton programme par l'instruction getch(); c'est à dire que le prog attend un caractère au clavier avant de continuer, ça permet de voir le résultat de l'affichage.
Salut.
Je pense que c'est parce que, dés que l'exécution du programme est finie, l'IDE reprend la main et la fenêtre d'exécution disparait. Il doit certainement y avoir une option qui laisse la fenêtre d'exécution affichée ou qui permet de basculer d'une fenêtre à l'autre. Un astuce consiste à terminer ton programme par l'instruction getch(); c'est à dire que le prog attend un caractère au clavier avant de continuer, ça permet de voir le résultat de l'affichage.
Salut.
fanimed
Messages postés
84
Date d'inscription
samedi 16 février 2008
Statut
Membre
Dernière intervention
3 juillet 2009
18
1 mars 2008 à 14:11
1 mars 2008 à 14:11
vous avez certainement raison parce moi je termine chaque fois mes programmes par return 0...alors kel est la difference entre les deux et kel est le meilleur????detaillez un peu!!!
quand on utilise getch() queskil fo mettre au debut(le type de la fonction main)????
quand on utilise getch() queskil fo mettre au debut(le type de la fonction main)????
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
La fonction getch() attend qu'un caractère soit disponible au clavier et place éventuellement le caractère dans une variable de type char, ex:
c=getch(); c reçoit le caractère (le code de la touche) qui à été frappée au clavier
getch(); idem mais sans affecter la caractère à une variable.
La fonction getch() n'est pas faite pour terminer un programme. Placée en dernière instruction, c'est juste une astuce de programmation pour laisser le temps au programmeur de voir le résultat de l'affichage à l'écran avant qu'il ne disparaisse. Une fois le programme débogué, on l'enlève si elle ne sert à rien.
Par contre la fonction return (n) doit terminer le programme. La valeur n (pas forcement 0) est le code de retour du programme qui est passé au système d'exploitation (DOS). Elle peut être évaluée par l'OS grâce à la variable ERRORLEVEL pour savoir si l'exécution s'est bien passé ou si le prog a été interrompu pour cause d'erreur, par exemple, et donc faire telle ou telle action. La valeur de (n) dépend de la déclaration de la fonction main(): int main() doit retouner un entier, void main() ne retourne rien, etc... En géréral return 0 veut dire tout s'est bien passé. Mais c'est le programmeur qui décide.
Voila pour le petit cours. Je te conseille vivement de lire un bouquin sur le C, bien plus détaillé et précis que tout ce que je pourrai te dire. Salut.
c=getch(); c reçoit le caractère (le code de la touche) qui à été frappée au clavier
getch(); idem mais sans affecter la caractère à une variable.
La fonction getch() n'est pas faite pour terminer un programme. Placée en dernière instruction, c'est juste une astuce de programmation pour laisser le temps au programmeur de voir le résultat de l'affichage à l'écran avant qu'il ne disparaisse. Une fois le programme débogué, on l'enlève si elle ne sert à rien.
Par contre la fonction return (n) doit terminer le programme. La valeur n (pas forcement 0) est le code de retour du programme qui est passé au système d'exploitation (DOS). Elle peut être évaluée par l'OS grâce à la variable ERRORLEVEL pour savoir si l'exécution s'est bien passé ou si le prog a été interrompu pour cause d'erreur, par exemple, et donc faire telle ou telle action. La valeur de (n) dépend de la déclaration de la fonction main(): int main() doit retouner un entier, void main() ne retourne rien, etc... En géréral return 0 veut dire tout s'est bien passé. Mais c'est le programmeur qui décide.
Voila pour le petit cours. Je te conseille vivement de lire un bouquin sur le C, bien plus détaillé et précis que tout ce que je pourrai te dire. Salut.
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
1 mars 2008 à 17:51
1 mars 2008 à 17:51
tu peux utiliser
system("PAUSE");
fanimed
Messages postés
84
Date d'inscription
samedi 16 février 2008
Statut
Membre
Dernière intervention
3 juillet 2009
18
1 mars 2008 à 20:50
1 mars 2008 à 20:50
merci cest gentil...jai deja parcouru siteduzero.com partiellement..il est trè riche..mais je lai pa encore terminé..selon vous Quel IDE dois-je utiliser???surtout si je veux faire de la programmation reseau(les sockets)....
Salut,
En compilateur libre il y à codeblocks.
Tu as la liste des compilateur C ici : https://cpp.developpez.com/telecharger/index/categorie/30/Outils-C-Cplusplus
Et aussi cours et tutoriels C : https://c.developpez.com/cours/
Et pour les questions, la F.A.Q C : https://c.developpez.com/faq/
En compilateur libre il y à codeblocks.
Tu as la liste des compilateur C ici : https://cpp.developpez.com/telecharger/index/categorie/30/Outils-C-Cplusplus
Et aussi cours et tutoriels C : https://c.developpez.com/cours/
Et pour les questions, la F.A.Q C : https://c.developpez.com/faq/
salut tous le monde
j'ai des probleme avec le site des compilateure c que tu m'offre
et si peut faire une remarque sur le dev c++ ;il est plein de default;est on a rencontres des probleme au niveau des pointeure
et l'utilisation de la fonction new
merci pour tout
j'ai des probleme avec le site des compilateure c que tu m'offre
et si peut faire une remarque sur le dev c++ ;il est plein de default;est on a rencontres des probleme au niveau des pointeure
et l'utilisation de la fonction new
merci pour tout
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
2 mars 2008 à 20:02
2 mars 2008 à 20:02
Salut,
Par contre Const int age=18; définit bien une variable de type entier initialisé à 18.
Pas tout à fait.
Une constante n'est pas une variable.
Bref, une constante c'est un emplacement mémoire non modifiable, tandis que une variable c'est un emplacement mémoire modifiable.
Ce qu'on défini avec #define on l'appele constante symbolique
Par contre Const int age=18; définit bien une variable de type entier initialisé à 18.
Pas tout à fait.
Une constante n'est pas une variable.
Bref, une constante c'est un emplacement mémoire non modifiable, tandis que une variable c'est un emplacement mémoire modifiable.
Ce qu'on défini avec #define on l'appele constante symbolique
bonjour
je suis débutant en langage C
mon question est : comment convertir une chaine de charactaire en un entier
exemple
int y;
char x[10];
printf("tappez la date ") ;
scanf("%s",x);
si j'ai tappé par exemple 10
donc x prend "10"
je veux menant que y prend 10 comme chiffre
merci de votre explication
je suis débutant en langage C
mon question est : comment convertir une chaine de charactaire en un entier
exemple
int y;
char x[10];
printf("tappez la date ") ;
scanf("%s",x);
si j'ai tappé par exemple 10
donc x prend "10"
je veux menant que y prend 10 comme chiffre
merci de votre explication
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
3 mars 2008 à 01:51
3 mars 2008 à 01:51
c'est pas tres clair...
tu veux faire quoi exactement ?
tu veux faire quoi exactement ?
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
3 mars 2008 à 09:31
3 mars 2008 à 09:31
salut eigeneyes
Tout d'abord ton problème n'a pas de rapport avec le problème de ce sujet. Crée un autre sujet afin de ne pas rendre le forum impossible à lire. Un sujet = une question (ou plusieurs questions par rapport au meme problème, ce n'est pas le cas ici).
Et comme l'a dit mype, ton message n'est pas très clair. Mais je crois avoir compris : tu cherches à convertir un chaine de caractere char[] en un nombre.
Je te proposes d'aller voir sur la FAQ C de developpez.net, il me semble qu'il y a tout expliqué à ce propos.
https://c.developpez.com/faq/
PS : ici : https://c.developpez.com/faq/?page=Les-chaines-de-caracteres#STRINGS_numtostr
Tout d'abord ton problème n'a pas de rapport avec le problème de ce sujet. Crée un autre sujet afin de ne pas rendre le forum impossible à lire. Un sujet = une question (ou plusieurs questions par rapport au meme problème, ce n'est pas le cas ici).
Et comme l'a dit mype, ton message n'est pas très clair. Mais je crois avoir compris : tu cherches à convertir un chaine de caractere char[] en un nombre.
Je te proposes d'aller voir sur la FAQ C de developpez.net, il me semble qu'il y a tout expliqué à ce propos.
https://c.developpez.com/faq/
PS : ici : https://c.developpez.com/faq/?page=Les-chaines-de-caracteres#STRINGS_numtostr
eau_douce
Messages postés
4
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
25 mars 2008
3 mars 2008 à 20:40
3 mars 2008 à 20:40
bonjours
tout d'abord pour lire un caractère de type char en entier il faut simplement écrire :
printf("entrer le caractéère :");
scanf("%d",&x);
sinon il y a une fonction s'appel "atoi(chaine): qui permet de covertir la chaine vers le nombre entier si c'est possible
exemple "123" c'est 123
et il y a atof(chaine) permet la convertion vers 1 nombre réel si c'est possible
exemple "123.12" devient 123.12
tout d'abord pour lire un caractère de type char en entier il faut simplement écrire :
printf("entrer le caractéère :");
scanf("%d",&x);
sinon il y a une fonction s'appel "atoi(chaine): qui permet de covertir la chaine vers le nombre entier si c'est possible
exemple "123" c'est 123
et il y a atof(chaine) permet la convertion vers 1 nombre réel si c'est possible
exemple "123.12" devient 123.12