Идентификаторы не найдены? - PullRequest
0 голосов
/ 16 февраля 2012

Я получаю ошибки в этой действительно простой программе и не могу понять, почему.Помогите!

//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;
}

И вот ошибки, которые я получаю:

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

Я включил необходимые каталоги, я не могу понять, почему это не работает.

1 Ответ

6 голосов
/ 16 февраля 2012

Для вашей первой ошибки, я думаю, что проблема в этой декларации:

 const float APRICE = 6.00,
       float CPRICE = 3.00;

В C ++, чтобы объявить несколько констант в строке, вы не повторяете имя типа. Вместо этого просто напишите

 const float APRICE = 6.00,
             CPRICE = 3.00;

Это также должно исправить вашу последнюю ошибку, которая, как мне кажется, вызвана тем, что компилятор запутался, что CPRICE является константой из-за ошибки в вашем объявлении.

Для второй ошибки, чтобы использовать getline, вам нужно

#include <string>

не просто

#include <cstring>

Поскольку функция getline находится в <string> (новый строковый заголовок C ++), а не <cstring> (в старом стиле строковый заголовок C).

Тем не менее, я думаю, что вы все равно получите ошибки от этого, потому что movieName объявлен как int. Попробуйте вместо этого определить std::string. Вы также можете объявить другие переменные как float s, так как они хранят действительные числа. В целом, я бы предложил определять ваши переменные по мере необходимости, а не все вверху.

Надеюсь, это поможет!

...