• 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

Object Storage Arubacloud
0 głosów
1,335 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 (194,920 p.)

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

Podobne pytania

+1 głos
1 odpowiedź 4,845 wizyt
pytanie zadane 24 kwietnia 2018 w C# przez DODO Bywalec (2,950 p.)
0 głosów
2 odpowiedzi 598 wizyt
0 głosów
0 odpowiedzi 605 wizyt

92,555 zapytań

141,403 odpowiedzi

319,554 komentarzy

61,940 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...