Votre question

Dev c++, scanf

Tags :
  • Erreur de syntaxe
  • Programmation
Dernière réponse : dans Programmation
1 Novembre 2004 16:02:19

Bonjour a tous, je debut en C++ à l'aide du logiciel Dev c++ et j'ai déja un probleme:

exemple :

int main()

{ int age;
printf ("Quel est ton age?: \n");
scanf ("%d", age);

system("PAUSE");
return 0;
}

Je compile tout ca, j'execute ... la il est affiché dans la console :

Quel est ton age?:

Ensuite j'entre une valeur et pui je suppose qu'a ce moment la il faut appuyer sur la touche Entrée ... Mais la arrive un probleme :

Une fenêtre apparait:
Essai_1.exe a rencontré un problème et doit fermer. Nous vous prions de nous excuser pour le désagrément encouru etc... MErci windows Xp!

J'aimerais savoir comment évité cela ..

SI vous avez une solution postée la moi merci d'avance !

Autres pages sur : dev scanf

1 Novembre 2004 16:25:26

Hum,
Ceci est une source de C, tu ne programme pas en C++ mais en C.
Dev c++ comprend le C donc cela ne vient pas du compilateur.

Je vais moyennement pouvoir t'aider car je programme en C++.
Bref je vais essayer.

Tout d'abord, si je crois (je ne suis pas sur), que scanf c'est une commande qui invite l'utilisateur a rentrer une variable, il la rentre, or tu ne t'en sers pas ensuite...

Quel est l'interet?
Dans la mesure de mes compétences c++istiques,
apparament il n'y a pas d'erreur de syntaxe.

Essaye ce programme c++ :

#include <iostream.h>
#include <stdio.h>
int main()

{int age;
cout <<"Quel est ton age?";
cin >> age;
system("PAUSE");
return 0;
}

Je ne t'ai pas fait un code source trés élaboré j'ai pris le tiens et je l'ai traduit en C++.

Essaye de voir si en C++ tu as la même erreur...

Bonne chance.
1 Novembre 2004 16:31:03

Ben merci beaucoup ca marche !!

Oui désolé je me suis trompé j'ai mis c++ pasque j'avais en tete le nom du log : devc++
:-D
Contenus similaires
1 Novembre 2004 16:33:07

Mais je trouve quand meme bizarre qu'en C ca plante et pas en C++ ...

Au fait comment as-tu fait pour convertir de C en C++ il y a un log pour ca ou c juste toi qui l'a fait comme ca ?!
1 Novembre 2004 16:46:34

l'erreur est dans le scanf...je ne vais pas rentrer dans les details (faudrait expliquer des trucs sur les pointeurs...)

scanf("%i",&age);

primo il faut uiliser un & avant le nom de la varaibale
deuxio fait attention au type... si tu veux mettre un double dans un entier, ca ne fonctionnera peut-etre pas tout le temps...

j'espere que ceci t'a aide...
1 Novembre 2004 16:53:12

OKey !!!

MErci beaucoup de ton aide !

Effectivement je n'avais pas compris que le &était obligatoire ...

%i identifie quel type ?

Et encore merci !!
1 Novembre 2004 16:56:59

%i pour un entier
%f pour un float...

je pense que c'est ça...

courage :-D
1 Novembre 2004 17:02:21

Merci beaucoup Reynald.

Puisje te demander un dernier service ?

if (age<= 18);
printf ("Tu es mineur. \n");

else

printf ("Tu es majeur. \n");

Où se situe l'erreur ?

(le log dit: parse before else)
1 Novembre 2004 17:06:08

j'ai trouver tout seul !

Jai rectifier :

if (age<= 18)printf ("Tu es mineur. \n");

else printf ("Tu es majeur. \n");


Voila voila Merci encore a ceux qui m'ont répondu !!

;-)
1 Novembre 2004 17:10:19

oui ou alors tu mets des accolades...
if(cond){
}
else{
}

ou il existe une notation comprimee :
cond ? instruction1 : instruction2 ;

qui donne pour toi...
(age<18)? printf("mineur") : printf("majeur");
1 Novembre 2004 17:16:25

Pour répondre, je ne connais pas de prog qui traduisent d'un language a un autre.
Je l'ai fait tout seul comme un grand :-D
1 Novembre 2004 17:26:38

Des programmes qui traduisent d'un langage à un autre existent, mais pour des cas precis...(passage de librairies Pascal vers le C...)

Mais le plus important n'est pas de bien savoir mettre les lignes de codes les unes a la suite des autres... il faut bien suivre la "philosophie" du langage(houllllaaaaaaa...la je fais fort ;-) )

Par exemple le C++ est de la programmation objet ce qui est fort different du C...

1 Novembre 2004 17:34:30

Bonjour,

juste pour ajouter que dans une structure conditionnelle [if], le fin-si ne se traduit pas donc un ; termine la structure.

if (confition)
traitement
else
traitement ; /* le ; à la fin */

et pour être encore plus précis ajouter les accolades comme expliqué plus haut

Bon courage pour la suite
1 Novembre 2004 17:50:23

Pour etre encore plus precit:

if (expression)
instruction_1
else
instruction_2

ou avec if seul:

if (expression)
instructon_1

Voilà @++ ;-)
2 Novembre 2004 14:13:11

le C et le C++ sont souvent confondus et mélangés ... simplement parce qu'on apprend les bases du C, printf, fprintf .. et qu'on continue a les utiliser en C++ .. même si les fonctions C ont des équivalents en c++ :

printf -> cout
scanf -> cin

malloc -> new
free -> delete

...
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS