• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Error: 'int exp' redeclared as different kind of symbol

42 Warsaw Coding Academy
0 głosów
1,420 wizyt
pytanie zadane 25 grudnia 2017 w C i C++ przez maciek061 Gaduła (4,490 p.)
zamknięte 31 grudnia 2017 przez maciek061

Witam. Mógłby ktoś wyjaśnić, jak pozbyć się tego błędu? Zarezerwowałem zmienną exp tylko raz, jeśli o to chodzi. Dla pewności sprawdziłem wszystkie wystąpienia frazy 'exp' w kodzie i wszystko jest w porządku. Co jest nie tak?


#include <iostream> 
#include <iomanip>
#include <fstream> 
#include <cstdlib>
#include <windows.h> 
#include <conio.h> 
#include <cmath>
#include <time.h>

using namespace std; 

HANDLE c = GetStdHandle( STD_OUTPUT_HANDLE );

double dolar=100;
double cryptocurrency=0.00000458;
double cryptoToDolar=1287.42;

long long lvl=1;
int exp=0;

long long mana=200;

void loading();
void color(int n);
void menu(); 
void write(); 
void work(); 
void buysell(); void casino();

int main()
{
    color(1); cout<<"Loading..."<<endl;
    cout.setf(ios::fixed);
    cout.precision(2);
    srand(time(NULL));
    loading();
    system("cls");
    menu();
}

void menu()
{
    char letter;
    write();
    color(5);
    cout<<"/---------------------------\\"<<endl;
    cout<<"|           MENU            |"<<endl;
    cout<<"|                           |"<<endl;
    cout<<"|                           |"<<endl;
    cout<<"|  [A] Work to earn money   |"<<endl;
    cout<<"| [S] Buy / sell CRYPTOCOIN |"<<endl;
    cout<<"|     [D] Go to casino      |"<<endl;
    cout<<"|                           |"<<endl;
    cout<<"|                           |"<<endl;
    cout<<"\\---------------------------/"<<endl<<endl;
    cout<<"Choose letter on keyboard"<<endl; /// Here user clicks on letter
    letter = getch(); system("cls"); write();

         if(letter=='a' || letter=='A') work();
    else if(letter=='s' || letter=='S') buysell();
    else if(letter=='d' || letter=='D') casino();

}

void write()
{

    color(6); cout<<"Money: "<<dolar<<"$ and "<<setprecision(8)<<cryptocurrency<<setprecision(2)<<" in CRYPTOCOIN"<<endl;
              cout<<"1 CRYPTOCOIN is "<<cryptoToDolar<<"$ for now"<<endl<<endl;

    color(3); cout<<"|Lvl "<<lvl<<"|"<<endl<<"|";
              for(int i=1; i<=20; i++) if(i<=exp) cout<<"X"; else cout<<"-";
              cout<<"| "<<exp*5<<"% ["<<100-(exp*20)<<"% to Lvl "<<lvl+1<<"]"<<endl<<endl; /// How many % to next level

    color(7); cout<<"MANA: "<<mana<<endl<<endl;
}

void color(int n)
{
    if(n==1) SetConsoleTextAttribute(c, FOREGROUND_RED | FOREGROUND_INTENSITY); /// Red
    if(n==2) SetConsoleTextAttribute(c, FOREGROUND_GREEN | FOREGROUND_INTENSITY); /// Green
    if(n==3) SetConsoleTextAttribute(c, FOREGROUND_BLUE | FOREGROUND_INTENSITY); /// Blue
    if(n==4) SetConsoleTextAttribute(c, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY); /// White
    if(n==5) SetConsoleTextAttribute(c, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY); /// Cyan
    if(n==6) SetConsoleTextAttribute(c, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY); /// Yellow
    if(n==7) SetConsoleTextAttribute(c, FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_INTENSITY); /// Purple
}

void loading()
{
    fstream file;
    file.open("data.dat",ios::in);
    if(file.good()==true) /// If file 'data.dat' exist and is available for this program
    {
        string line;
        int lineNr=1;

        while(getline(file,line))
        {
            switch(lineNr)
            {
            case 1: dolar = atof(line.c_str()); break;
            case 2: cryptocurrency = atof(line.c_str()); break;
            case 3: cryptoToDolar = atof(line.c_str()); break;
            case 4: lvl = atoll(line.c_str()); break;
            case 5: exp = atoi(line.c_str()); break;
            case 6: mana = atoll(line.c_str()); break;
            }

            lineNr++;
        }
    }

    file.close();
}

void work()
{
    long long howmany;
    color(5);

    do
    {
    cin.clear(); cin.sync();
    cout<<"How many operations you want to do (no more than 1000): ";
    cin>>howmany;
    } while(!cin || (howmany>1000 || howmany<1));

    int arg1;
    int arg2;
    int chrr;
    int result;
    int userResult;
    char sign;

    for(int i=1; i<=howmany; i++)
    {
        system("cls"); write(); color(5);
        arg1==rand()%400+100; /// Generate operation
        arg2==rand()%400+100;
        if(arg1%arg2!=0) chrr = rand()%3;
        else chrr = rand()%4
             if(chrr==0) {result = arg1 + arg2; sign='+';}
        else if(chrr==1) {result = arg1 - arg2; sign='-';}
        else if(chrr==2) {result = arg1 * arg2; sign='*';}
        else if(chrr==3) {result = arg1 / arg2; sign='/';}

        do
        {
            cout<<"Operation "<<i<<": "<<arg1<<" "<<sign<<" "<<arg2<<" = ";
            cin>>userResult; cin.clear(); cin.sync();
        } while(!cin);


    }
}

void buysell()
{

}

void casino()
{

}

 

komentarz zamknięcia: Problem rozwiązany
komentarz 25 grudnia 2017 przez niezalogowany
Bez kodu to możemy jedynie wróżyć z fusów aby ci powiedzieć co jest nie tak ;) (poprosimy o kod)
komentarz 25 grudnia 2017 przez maciek061 Gaduła (4,490 p.)
Racja, kod dodany

1 odpowiedź

+2 głosów
odpowiedź 25 grudnia 2017 przez niezalogowany
wybrane 25 grudnia 2017 przez maciek061
 
Najlepsza
exp jest zadeklarowane jako funkcja wewnątrz biblioteki cmath (robisz na nią include w linii 7), dlatego nie możesz już użyć tej nazwy jako zmiennej (linia 19) http://www.cplusplus.com/reference/cmath/exp/
komentarz 25 grudnia 2017 przez maciek061 Gaduła (4,490 p.)
Dzięki. Niby banalne, ale sam bym na to w życiu nie wpadł.
1
komentarz 25 grudnia 2017 przez niezalogowany

Jeszcze pomylenie znaku przypisania z przyrównaniem:

arg1 == rand() % 400 + 100;
arg2 == rand() % 400 + 100;

+ chwilę po tym brak średnika (lub klamer)

1
komentarz 26 grudnia 2017 przez j23 Mędrzec (195,240 p.)

@maciek061, problemu by nie było, gdybyś na początku nie dał using namespace std;

Podobne pytania

+1 głos
1 odpowiedź 5,339 wizyt
pytanie zadane 24 kwietnia 2018 w C# przez DODO Bywalec (2,950 p.)
0 głosów
2 odpowiedzi 818 wizyt
0 głosów
0 odpowiedzi 651 wizyt

93,377 zapytań

142,379 odpowiedzi

322,525 komentarzy

62,724 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...