Je connais son code simple, comment puis-je résoudre le problème "Système non déclaré dans la portée"?
#include<iostream>
using namespace std;
int main(void)
{
system ( "TITLE Calculator" );
system ( "COLOR 2" );
char cChar;
double dfirstnumber;
double dsecondnumber;
char cDoagain;
do
{
system("CLS");
cout << "Please enter the first number you would like to use."<< endl;
cin >> dfirstnumber;
cout<< "Please enter the operation you would like to perform." << " (+,-,*,or /)" << endl;
cin >> cChar;
cout<< "Please enter the second number you would like to use." << endl;
cin >> dsecondnumber;
switch (cChar)
{
case '+':
cout << "The answer is: " << dfirstnumber << "+" << dsecondnumber << "=" <<
(dfirstnumber + dsecondnumber) << endl;
break;
case '-':
cout << "The answer is: " << dfirstnumber << "-" << dsecondnumber << "=" <<
(dfirstnumber - dsecondnumber) << endl;
break;
case '*':
cout << "The answer is: " << dfirstnumber << "*" << dsecondnumber << "=" <<
(dfirstnumber * dsecondnumber) << endl;
break;
case 'x':
cout << "The answer is: " << dfirstnumber << "x" << dsecondnumber << "=" <<
(dfirstnumber * dsecondnumber) << endl;
break;
case 'X':
cout << "The answer is: " << dfirstnumber << "X" << dsecondnumber << "=" <<
(dfirstnumber * dsecondnumber) << endl;
break;
case '/':
if(dsecondnumber == 0){
cout<< "That is an invalid operation." << endl;}
else{
cout << "The answer is: " << dfirstnumber << "/" << dsecondnumber << "=" <<
(dfirstnumber / dsecondnumber) << endl;
}
break;
default:
cout << "That is an invalid operation." << endl;
break;
}
cout << "Would you like to start again? (Y/N)" << endl;
cin >> cDoagain;
}while (cDoagain == 'Y' or cDoagain == 'y');
system("PAUSE");
return 0;
}
Voici mon message final:
C:\Documents and Settings\Nilo\My Documents\Work\Testing\main.cpp || Dans la fonction 'int main ()': | Erreur C:\Documents and Settings\Nilo\My Documents\Work\Testing\main.cpp | 8 |: le système n'a pas été déclaré dans cette étendue ||
| === Build terminé: 1 erreurs, 0 avertissements === |
Vous devez ajouter:
#include <cstdlib>
afin que le compilateur puisse voir le prototype de system()
.
Il est probable que vous n'ayez pas inclus le fichier d'en-tête qui déclare system()
.
Pour pouvoir compiler du code C++ qui utilise des fonctions que vous ne déclarez pas (manuellement) vous-même, vous devez extraire les déclarations. Ces déclarations sont normalement stockées dans des fichiers dits d'en-tête que vous extrayez dans l'unité de traduction actuelle à l'aide de la directive de préprocesseur #include
. Comme le code ne contient pas #include
Le fichier d'en-tête dans lequel system()
est déclaré, la compilation échoue.
Pour résoudre ce problème, recherchez le fichier d'en-tête qui vous fournit la déclaration de system()
et incluez-la. Comme mentionné dans plusieurs autres réponses, vous souhaiterez probablement ajouter #include <cstdlib>