Problem C++
maroctech
Messages postés
115
Date d'inscription
Statut
Membre
Dernière intervention
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis vraiment débutant sur C++ et j'essaie de commençer avec les plus simple programme, (Calcul de TTC) :
/* mon premier programme en C++ */
#include <iostream.h>
#define TVA 20
int main(void)
{
float HT,TTC; // on d‚clare deux variavles (HT et TTC)
cout<<"veuillez entrer le prix HT : " ;
cin>>HT;
TTC=HT*(1+(TVA/100));
cout<<"prix TTC est de : "<<TTC<<"/n;
}
J'utilise Borland C++ et quand je compile ca me renvoi presque 25 erreurs (Declaration syntax error) Sur iostream.h
J'ai eu la meme erreure avec Turbo C++.
Pouvez vous m'expliquez d'ou ça peut venir ? et merçi
Je suis vraiment débutant sur C++ et j'essaie de commençer avec les plus simple programme, (Calcul de TTC) :
/* mon premier programme en C++ */
#include <iostream.h>
#define TVA 20
int main(void)
{
float HT,TTC; // on d‚clare deux variavles (HT et TTC)
cout<<"veuillez entrer le prix HT : " ;
cin>>HT;
TTC=HT*(1+(TVA/100));
cout<<"prix TTC est de : "<<TTC<<"/n;
}
J'utilise Borland C++ et quand je compile ca me renvoi presque 25 erreurs (Declaration syntax error) Sur iostream.h
J'ai eu la meme erreure avec Turbo C++.
Pouvez vous m'expliquez d'ou ça peut venir ? et merçi
15 réponses
salut,
Ton programme ne comporte pas tant d'erreur que ça, mais disons qu'il est écris dans un vieux style.
La plupart des remarques de JulienZ sont pertinante. Une petit réserve sur le #define, dont l'utilisation est discutable. Il est clair qu'il vaut mieux utiliser un const int, mais moi je l'aurai mi en dehors du main.
D'ailleur, ton main devrai retourner une valeur, il est de bon ton de mettre return 0; à la fin du programme, cette valeur est récupérer par l'OS (%ERRORLEVEL% sous windows) Pour déterminer si le programme a rencontrer des erreurs ou non.
Maintenant, un conseil de type, lorsque tu fait TVA/100 TVA est un int, et 100 est détecter comme un int par le compilateur, et 20/100=0 car le résultat doit être entier. Pour résoudre ce prblème, soit tu défini TVa comme un reel soit tu met 100.0 à la place de 100 pour lui indiquer que le résultat doit être réel (moi, je fait les deux pour être sur)
le endl à la place du "\n", c'est pareil, ça se discute car ça n'a pas la même signification. "\n" fait juste un retour à la ligne alors que endl vide en plus le buffer de cout; ce qui n'est pas forcement recherché.
Pour finir, ton erreur de IOSTREAM introuvable, si tu utilise une vieille version de C++, peut être faut il encore inclure <iostream.h>; sinon le problème est plus sérieux.
Ton programme ne comporte pas tant d'erreur que ça, mais disons qu'il est écris dans un vieux style.
La plupart des remarques de JulienZ sont pertinante. Une petit réserve sur le #define, dont l'utilisation est discutable. Il est clair qu'il vaut mieux utiliser un const int, mais moi je l'aurai mi en dehors du main.
D'ailleur, ton main devrai retourner une valeur, il est de bon ton de mettre return 0; à la fin du programme, cette valeur est récupérer par l'OS (%ERRORLEVEL% sous windows) Pour déterminer si le programme a rencontrer des erreurs ou non.
Maintenant, un conseil de type, lorsque tu fait TVA/100 TVA est un int, et 100 est détecter comme un int par le compilateur, et 20/100=0 car le résultat doit être entier. Pour résoudre ce prblème, soit tu défini TVa comme un reel soit tu met 100.0 à la place de 100 pour lui indiquer que le résultat doit être réel (moi, je fait les deux pour être sur)
le endl à la place du "\n", c'est pareil, ça se discute car ça n'a pas la même signification. "\n" fait juste un retour à la ligne alors que endl vide en plus le buffer de cout; ce qui n'est pas forcement recherché.
Pour finir, ton erreur de IOSTREAM introuvable, si tu utilise une vieille version de C++, peut être faut il encore inclure <iostream.h>; sinon le problème est plus sérieux.
Houlà. étrange.
Le problème semble au delà de la programmation. Peut être un disque dur défectueux.
à la place de g++ essai gcc.
Le problème semble au delà de la programmation. Peut être un disque dur défectueux.
à la place de g++ essai gcc.
ton programme est bourré de fautes (même si je ne m'y connais pas en C++):
*cout<<"prix TTC est de : "<<TTC<<"/n; , c'est quoi ça ?
*pourquoi le type FLOAT , utilises le INT pour déclarer les entiers
*...
Pour apprendre le C++ , je te conseille cette page utile (consulte un tutoriel aléatoirement)
*cout<<"prix TTC est de : "<<TTC<<"/n; , c'est quoi ça ?
*pourquoi le type FLOAT , utilises le INT pour déclarer les entiers
*...
Pour apprendre le C++ , je te conseille cette page utile (consulte un tutoriel aléatoirement)
Salut,
ton code comporte en effet de nombreuses erreurs. La bibliothèque iostream est mal déclaré, contrairement au C, tu n'as pas à mettre le .h ainsi <iostream> suffit. Les #define sont des mots clefs à réserver au C vu qu'il s'agit d'un appel au préprocésseur. Utilise plutôt le mot clef "const".
Pour finir un \n se place entre guillement vu qu'il s'agit d'un code réprésentant un caractère. En C++, endl le remplace trés bien si tu utilise cout.
#include <iostream>
using namespace std; //Pour utiliser cout à la place de std::cout
int main(void)
{
const int TVA =20;
float HT,TTC; // on d‚clare deux variavles (HT et TTC)
cout<<"veuillez entrer le prix HT : " ;
cin>>HT;
TTC=HT*(1+(TVA/100));
cout<<"prix TTC est de : "<<TTC<<endl;
}
Bon courage pour la suite.
ton code comporte en effet de nombreuses erreurs. La bibliothèque iostream est mal déclaré, contrairement au C, tu n'as pas à mettre le .h ainsi <iostream> suffit. Les #define sont des mots clefs à réserver au C vu qu'il s'agit d'un appel au préprocésseur. Utilise plutôt le mot clef "const".
Pour finir un \n se place entre guillement vu qu'il s'agit d'un code réprésentant un caractère. En C++, endl le remplace trés bien si tu utilise cout.
#include <iostream>
using namespace std; //Pour utiliser cout à la place de std::cout
int main(void)
{
const int TVA =20;
float HT,TTC; // on d‚clare deux variavles (HT et TTC)
cout<<"veuillez entrer le prix HT : " ;
cin>>HT;
TTC=HT*(1+(TVA/100));
cout<<"prix TTC est de : "<<TTC<<endl;
}
Bon courage pour la suite.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
salut,
oui comme dis Char Snipeur, il faut garder le .h dans inclure <iostream.h> mais par contre il y a pas de ";" apres
et apres j'aurai plutot mis
void main()
{
}
que
int main(void)
{
}.
oui comme dis Char Snipeur, il faut garder le .h dans inclure <iostream.h> mais par contre il y a pas de ";" apres
et apres j'aurai plutot mis
void main()
{
}
que
int main(void)
{
}.
Oui c'est vrai mais vu qu'il commence le c++ autant qu'il prenne quelque chose qui marche pour tout et non quelque chose qu'il peut utilise que dans un cas spécial enfin c'est ce que je pense ^^.
Bonjour tt le monde,
Ben je vous remercie puor vos réponses, j'apprécie vos conseils mais jusqu'au maintenant j'arrive pas a compiler ce tt petit simple programme dont le code est déja presenté et la version modifiée de JulienZ, toujours l'erreur de Can't open include file IOSTREAM.H . J'ai essayé avec le H et sans le H, c'est pareil sous Turbo C++ et sous G++ et sous Borland C++. Je crois que c'est un blém en dehors des déclarations ni les INT ni FLOAT puisque la compilation s'arrete meme au niveau du fichier inclu (IOSTREAM.H), J'ai bien verifié que IOSTREAM se trouve sur le dossier INCLUDE et meme j'ai telechargé une version originale sur le NET.
Merçi
PS : J'ai déja les notions comme étant un ancien user de PAscal et actuel user confirmé de PHP qui est derivé du C
Ben je vous remercie puor vos réponses, j'apprécie vos conseils mais jusqu'au maintenant j'arrive pas a compiler ce tt petit simple programme dont le code est déja presenté et la version modifiée de JulienZ, toujours l'erreur de Can't open include file IOSTREAM.H . J'ai essayé avec le H et sans le H, c'est pareil sous Turbo C++ et sous G++ et sous Borland C++. Je crois que c'est un blém en dehors des déclarations ni les INT ni FLOAT puisque la compilation s'arrete meme au niveau du fichier inclu (IOSTREAM.H), J'ai bien verifié que IOSTREAM se trouve sur le dossier INCLUDE et meme j'ai telechargé une version originale sur le NET.
Merçi
PS : J'ai déja les notions comme étant un ancien user de PAscal et actuel user confirmé de PHP qui est derivé du C
Alors la je vois pas pourquoi sa plante sur le iostream alors que la bibliothèque y est, c'est bizare.
le message d'erreur est étrange, il dit qu'il ne peux l'ouvrir et non qu'il ne peux le trouver.
Sinon, j'aurai dit qu'il s'agisait d'un problème d'option de compilation. (-I[chemin]/include sous gcc)
Mais là...
C'est quoi ton OS, XP ? il ne devrais pas y avoir de problème.
à par des problèmes de droit de lecture peut être.
essai ce programme là :
ou celui là (sans includes) :
Sinon, j'aurai dit qu'il s'agisait d'un problème d'option de compilation. (-I[chemin]/include sous gcc)
Mais là...
C'est quoi ton OS, XP ? il ne devrais pas y avoir de problème.
à par des problèmes de droit de lecture peut être.
essai ce programme là :
#include <stdio.h> const float TVA=20.0; int main() { float HT; scanf("%f",&HT); printf("le prix hrs taxe est de %e soit avec une TVA, un prix tout compris de %e\n",HT,HT*(1.+TVA/100.)); return 0; }
ou celui là (sans includes) :
const float TVA=20.0; int main() { float HT=30; float TTC=HT*(1.+TVA/100.); return 0; }
Re,
J'ai testé ce que vous m'avez dit et ça marche nickel avec l'ensemble des compilateurs, pourquoi alors ils acceptent pas iostream.h ??
PS : j'utilise WinXP avec Turbo C++ et Borland C++ et aussi Linux avec G++
J'ai testé ce que vous m'avez dit et ça marche nickel avec l'ensemble des compilateurs, pourquoi alors ils acceptent pas iostream.h ??
PS : j'utilise WinXP avec Turbo C++ et Borland C++ et aussi Linux avec G++
Salut,
Je ne sais pas du tout pourquoi tes compilateurs ne trouvent pas iostream.
En tout cas, j'ai compilé le code que je t'ai fourni sur DevC++, et il trouve bien iostream.
Peut être ton environnement de développement est mal configuré pour le développement en C++...
Vu que le code fourni par char snipeur (qui est un code purement C) se compile sans problème, et que celui que tu voulais faire à la base était C++. Ca me paraît quand même bizarre...
Julien
Je ne sais pas du tout pourquoi tes compilateurs ne trouvent pas iostream.
En tout cas, j'ai compilé le code que je t'ai fourni sur DevC++, et il trouve bien iostream.
Peut être ton environnement de développement est mal configuré pour le développement en C++...
Vu que le code fourni par char snipeur (qui est un code purement C) se compile sans problème, et que celui que tu voulais faire à la base était C++. Ca me paraît quand même bizarre...
Julien
Là ce que je trouve vraiment étrange, c'est que ça merde sous XP et Linux.
Bon, à tout hasard, donne nous ta commande de compilation avec borland et gcc (g++).
Donne aussi le chemin de iostream.
Je sens la merdouille du genre le source est en .c et pas en .cpp ...
Bon, à tout hasard, donne nous ta commande de compilation avec borland et gcc (g++).
Donne aussi le chemin de iostream.
Je sens la merdouille du genre le source est en .c et pas en .cpp ...