# scanf sur code::blocks



## karagas (30 Août 2009)

Bonjour a tous.
alors voila mon problème: je me lance dans la programation en C sur codeblocks et je suis en train d'essayer de faire marcher ce code la:
int main(int argc, char *argv[])
{
  int age = 0;

  printf("Quel age avez-vous ? ");
  scanf("%d", &age);
  printf("Ah ! Vous avez donc %d ans !\n", age);

  return 0;
}
je tiens a preciser que ce code n'est pas de moi, c'est un exemple que j'ai trouvé...
l'objectif etait de faire apparaitre la question "quel age avez-vous?", nous entrons un chiffre entier et la console devrait nous dire "Ah! Vous avez donc x ans!" x etant le chiffre que nous avions entré plus tôt. Le problème c'est que quand je lance ce code, je n'ai aucune question sur la console et si j'entre un chiffre ça ne fait rien de ce que je voulais, ça dit: 
-bash: 16: command not found
est-ce que quelqu'un aurait une solution pour cela?
merci d'avance


----------



## grumff (30 Août 2009)

Testé chez moi, ça passe nickel, t'as du merder dans la compilation.


```
#include <stdio.h>

int main(int argc, char *argv[])
{
int age = 0;

printf("Quel age avez-vous ? ");
scanf("%d", &age);
printf("Ah ! Vous avez donc %d ans !\n", age);

return 0;
}
```

Puis :

```
grumff:dev flo$ gcc -o test test.c
grumff:dev flo$ ./test
Quel age avez-vous ? 12
Ah ! Vous avez donc 12 ans !
```


----------



## karagas (30 Août 2009)

Comment as-tu fait la compilation?
moi j'a ce code la et quand je fais "build" et apres "build and run", ça m'incrit ça sur le terminal:
Last login: Sun Aug 30 11:49:41 on ttys000
/Users/thomasdias/Desktop/Recup variable/bin/Debug/Recup variable 
Macintosh:~ thomasdias$ /Users/thomasdias/Desktop/Recup variable/bin/Debug/Recup variable 
-bash: /Users/thomasdias/Desktop/Recup: No such file or directory
Macintosh:~ thomasdias$
PS: comment mets-tu les balises pour le code? je ne les trouve pas...


----------



## Didier Guillion (30 Août 2009)

Attention, le code est erroné. Tu considère que les int sont 16 bits (short) et donc tu utilise %d.
Ne jamais utiliser "int" en C, toujours short (%d) ou long (%ld).

Cordialement


----------



## karagas (30 Août 2009)

j'ai essayé avec long(%ld) et short (%d) et ça ne change rien du tout...


----------



## grumff (30 Août 2009)

karagas a dit:


> Comment as-tu fait la compilation?



Je t'ai copié le code :
gcc -o nom_du_programme fichier.c


----------



## karagas (30 Août 2009)

Je ne comprends pas ce que ça signifie, je viens de comencer. Je lis un genre de cours sur internet et jusqu'a maintenant tou marchait trés bien... Seulement cette partie la non il sur les cours il n'a fait aucune reference a ce genre de code alors je suis un peu perdu... :S


----------



## Didier Guillion (31 Août 2009)

karagas a dit:


> j'ai essayé avec long(%ld) et short (%d) et ça ne change rien du tout...



Peut tu fournir le source ?

Cordialement


----------



## karagas (31 Août 2009)

Comme je l'ai dit plus haut je suis un debutant alors je ne connais pas encore bien les termes, quesque le source? :rose:


----------



## Didier Guillion (1 Septembre 2009)

Le texte de ton programme.

Cordialement


----------



## karagas (1 Septembre 2009)

Le voila

```
#include <stdio.h>

int main(int argc, char *argv[])
{
long age = 0;
printf("Quel age avez-vous ? ");
scanf("%ld", &age);
printf("Ah ! Vous avez donc %ld ans !\n", age);

return 0;
}
```


----------



## Didier Guillion (1 Septembre 2009)

Cela a l'air ok, qu'est ce que tu obtient à l'exécution ?

Cordialement


----------



## karagas (1 Septembre 2009)

Ceci quoi que je fasse...:

Last login: Sun Aug 30 11:49:41 on ttys000
/Users/thomasdias/Desktop/Recup variable/bin/Debug/Recup variable 
Macintosh:~ thomasdias$ /Users/thomasdias/Desktop/Recup variable/bin/Debug/Recup variable 
-bash: /Users/thomasdias/Desktop/Recup: No such file or directory
Macintosh:~ thomasdias$


----------



## [Vezøul]Numerø41 (1 Septembre 2009)

Tu l'exécute comment ? Tu as bien compilé avec la même commande que Grumff ? Non parce que ça c'est la pure base du développement C quand même.    

Si tu veux afficher un int alors il faut utiliser un %i si tu ne veux pas de warning.


----------



## karagas (1 Septembre 2009)

En fait je suis en train de suivre un tuto et tout se qu'il dit c'est que avec ce code, si on fait build and run ça nous ouvre le terminal et la question apparait... personne dans les commentaires ne c'est plain de ce problème... :S je ne comprends vraiment pas ce qu'il ce passe


----------



## [Vezøul]Numerø41 (1 Septembre 2009)

Faudrait dans ces cas la peut-être commencer par maitriser un minimum le terminal


----------



## karagas (1 Septembre 2009)

beh c'est pour ça que j'essaye de me lancer la dedans...^^ je croyais etre sur du basique la xD


----------



## Diablovic (1 Septembre 2009)

Ca devrait aider.


----------



## karagas (4 Septembre 2009)

Je reviens pour vous donner quelques nouvelles... lol J'ai donc essayer exactement le meme code sur code::blocks mais cette fois sur le windows a mon frere et ça a trés bien marché :mouais: Vous savez d'ou ça pourrait venir?
Merci d'avance


----------



## [Vezøul]Numerø41 (4 Septembre 2009)

De ton utilisation du terminal


----------



## karagas (4 Septembre 2009)

comment ça? le code ne devrait pas fonctioner comme sous windows et apparaitre sur le terminal?


----------



## [Vezøul]Numerø41 (4 Septembre 2009)

Si sauf que ton code est du code basique. Normalement il n'y a qu'a ouvrir le terminal, faire un gcc pour le compiler puis lancer l'exécution depuis le terminal (l'IDE n'étant pas un plus ici).


----------



## karagas (4 Septembre 2009)

Ah! Je comprends maintenant... Je vais chercher un tuto pour m'expliquer cette histoire de gcc, merci de m'avoir eclairé!


----------



## [Vezøul]Numerø41 (4 Septembre 2009)

En gros tu ouvres un terminal tu tapes "vi fic.c" tu écris ton code et tu quittes en enregistrant en tapant ":wq!" ou ":x!" la tu fais "gcc -o fic.x fic.c" et normalement tu exécutes le programme en tapant "./fic.x", si déjà ça tu n'y arrive pas, alors arrêtes le dev


----------



## karagas (4 Septembre 2009)

Je vais plutot chercher un tuto pour ça, j'aime pas faire les choses sans les comprendre... lol


----------



## p4bl0 (4 Septembre 2009)

[Vezøul]Numerø41;5206090 a dit:
			
		

> En gros tu ouvres un terminal tu tapes "vi fic.c" tu écris ton code et tu quittes en enregistrant en tapant ":wq!" ou ":x!" la tu fais "gcc -o fic.x fic.c" et normalement tu exécutes le programme en tapant "./fic.x", si déjà ça tu n'y arrive pas, alors arrêtes le dev


que tu finnissent tout tes messages par "  " bon...


MAIS QUE TU UTILISES VIM ALORS ÇA ! 


GNU Emacs powaaa  


(sorry les modo :rateau: ...)


----------



## grumff (4 Septembre 2009)

karagas a dit:


> Je vais plutot chercher un tuto pour ça, j'aime pas faire les choses sans les comprendre... lol


Et tu peux compter sur les bons conseils de pablo et num41, sauf pour l'éditeur de texte.


----------



## [Vezøul]Numerø41 (4 Septembre 2009)

pas vim, mais vi


----------



## grumff (5 Septembre 2009)

oui enfin vi sur mac c'est un alias pour vim


----------



## p4bl0 (5 Septembre 2009)

C'est encore pire, vi est même pas libre... !

Mais grumff a raison, dans OS X comme dans la plupart des distrib linux et bsd, vi est un alias pour vim.


----------

