2012-02-16 2 views
0

Je continue d'obtenir des erreurs dans ce programme très simple et je n'arrive pas à comprendre pourquoi. Aidez-moi!Identifiants non trouvés?

//This program will calculate a theater's revenue from a specific movie. 
#include<iostream> 
#include<iomanip> 
#include<cstring> 
using namespace std; 

int main() 
{ 
    const float APRICE = 6.00, 
      float CPRICE = 3.00; 

    int movieName, 
     aSold, 
     cSold, 
     gRev, 
     nRev, 
     dFee; 

    cout << "Movie title: "; 
    getline(cin, movieName); 
    cout << "Adult tickets sold: "; 
    cin.ignore(); 
    cin >> aSold; 
    cout << "Child tickets sold: "; 
    cin >> cSold; 

    gRev = (aSold * APRICE) + (cSold * CPRICE); 
    nRev = gRev/5.0; 
    dFee = gRev - nRev; 

    cout << fixed << showpoint << setprecision(2); 
    cout << "Movie title:" << setw(48) << movieName << endl; 
    cout << "Number of adult tickets sold:" << setw(31) << aSold << endl; 
    cout << "Number of child tickets sold:" <<setw(31) << cSold << endl; 
    cout << "Gross revenue:" << setw(36) << "$" << setw(10) << gRev << endl; 
    cout << "Distributor fee:" << setw(34) << "$" << setw(10) << dFee << endl; 
    cout << "Net revenue:" << setw(38) << "$" << setw(10) << nRev << endl; 

    return 0; 
} 

Et voici les erreurs que je reçois:

error C2062: type 'float' unexpected 
error C3861: 'getline': identifier not found 
error C2065: 'CPRICE' : undeclared identifier 

J'ai inclus les répertoires nécessaires, je ne comprends pas pourquoi cela ne fonctionne pas.

+0

Je suggère de déclarer une seule variable par déclaration; par exemple '... int aSold; int bVendu; ... '. –

Répondre

6

Pour votre première erreur, je pense que le problème est dans cette déclaration:

const float APRICE = 6.00, 
     float CPRICE = 3.00; 

En C++, pour déclarer plusieurs constantes dans une ligne, vous ne répétez pas le nom du type. Au lieu de cela, il suffit d'écrire

const float APRICE = 6.00, 
      CPRICE = 3.00; 

Cela devrait également fixer votre dernière erreur, que je crois est causée par le compilateur se confondre que CPRICE est une constante en raison de l'erreur dans votre déclaration.

Pour la deuxième erreur, d'utiliser getline, vous devez

#include <string> 

pas seulement

#include <cstring> 

Puisque la fonction getline est <string> (nouvel en-tête de chaîne C++) et non <cstring> (l'en-tête de chaîne C de style ancien). Cela dit, je pense que vous aurez toujours des erreurs à cause de cela, car movieName est déclaré int. Essayez de le définir comme std::string à la place. Vous pouvez également déclarer vos autres variables comme float s, car elles stockent des nombres réels. Plus généralement, je suggère de définir vos variables comme vous en avez besoin, plutôt que d'en haut.

Espérons que cela aide!

+0

+1 pour déclarer au besoin. Une variable doit toujours avoir la portée la plus étroite possible et être initialisée immédiatement après la déclaration. –

Questions connexes