Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Error] ISO C++ forbids comparison between pointer and integer [-fpermissive]

Ostatnio zmodyfikowano 2016-10-27 08:57
Autor Wiadomość
sobol3k
Temat założony przez niniejszego użytkownika
[Error] ISO C++ forbids comparison between pointer and integer [-fpermissive]
» 2016-10-26 01:35:27
Piszę małą prosta w gre konsolą lecz z niewiadomych przyczyn nie mogę skompilować swojego kodu.

C/C++
#include <iostream>
#include <cstdlib>
#include <windows.h>

using namespace std;

// zmienna w menu glownym
int wybierz;
// zmienna wyboru klasy
int wybierz_klase;

string wojownik;

int main()
{
    HANDLE hOut;
    hOut = GetStdHandle( STD_OUTPUT_HANDLE );
   
    cout << "--- Menu Glowne ---" << endl << endl;
    SetConsoleTextAttribute( hOut, FOREGROUND_GREEN );
    cout << "1. Nowa Gra" << endl;
    SetConsoleTextAttribute( hOut, FOREGROUND_BLUE );
    cout << "2. Autorzy" << endl;
    SetConsoleTextAttribute( hOut, FOREGROUND_RED );
    cout << "3. Wyjdz";
    SetConsoleTextAttribute( hOut, 7 );
   
    cout << endl << endl;
    cout << "Wybierz: ";
    // gracz wybiera w menu co chce zrobic
    cin >> wybierz;
   
    // menu glowne
    switch( wybierz )
    {
    case 1:
        {
            system( "cls" );
            cout << "Witamy w kreatorze postaci!" << endl << endl;
            cout << "Wojownik";
            SetConsoleTextAttribute( hOut, 3 );
            cout << " - Posiada miecz i oraz duze obrazenia z atakow fizycznych" << endl;
            SetConsoleTextAttribute( hOut, 7 );
            cout << "Mag";
            SetConsoleTextAttribute( hOut, 6 );
            cout << " - Posiada wysoki poziom mocy umiejetnosci oraz malo ilosc zycia" << endl;
            SetConsoleTextAttribute( hOut, 7 );
            cout << "Olbrzym";
            SetConsoleTextAttribute( hOut, 5 );
            cout << " - Bardzo mocny i wytrzymaly duza ilosc zycia i pancerzu" << endl << endl;
            SetConsoleTextAttribute( hOut, 7 );
            // gracz wybiera klase postaci
            cout << "Wybierz klase postaci: ";
            cin >> wybierz_klase;
           
            if((( wybierz_klase != "Wojownik" ) &&( wybierz_klase != "Mag" ) &&( wybierz_klase != "Olbrzym" ) ) )
            {
                cout << "Nie ma takiej klasy!";
            }
        }
        break;
    case 2:
        {
            system( "cls" );
            cout << "Autor: xxx";
           
           
        }
    case 3:
        {
            system( "cls" );
            exit( 0 );
           
        }
        break;
        default: cout << "Blad wyboru! Spruboj Ponownie"; break;
       
    }
   
    return 0;
   
}
P-152929
ArgonZapan
» 2016-10-26 01:40:29
Wrzuć w znaczniki [cpp.][./cpp] i wklej to co wywala przy kompilowaniu :)
P-152930
ArgonZapan
» 2016-10-26 01:48:16
C/C++
#include <iostream>
#include <stdlib.h>
#include <string>
#include <windows.h>

using namespace std;

// zmienna w menu glownym
int wybierz;
// zmienna wyboru klasy
string wybierz_klase;

string wojownik;

int main()
{
    HANDLE hOut;
    hOut = GetStdHandle( STD_OUTPUT_HANDLE );
   
    cout << "--- Menu Glowne ---" << endl << endl;
    SetConsoleTextAttribute( hOut, FOREGROUND_GREEN );
    cout << "1. Nowa Gra" << endl;
    SetConsoleTextAttribute( hOut, FOREGROUND_BLUE );
    cout << "2. Autorzy" << endl;
    SetConsoleTextAttribute( hOut, FOREGROUND_RED );
    cout << "3. Wyjdz";
    SetConsoleTextAttribute( hOut, 7 );
   
    cout << endl << endl;
    cout << "Wybierz: ";
    // gracz wybiera w menu co chce zrobic
    cin >> wybierz;
   
    // menu glowne
    switch( wybierz )
    {
    case 1:
        {
            system( "cls" );
            cout << "Witamy w kreatorze postaci!" << endl << endl;
            cout << "Wojownik";
            SetConsoleTextAttribute( hOut, 3 );
            cout << " - Posiada miecz i oraz duze obrazenia z atakow fizycznych" << endl;
            SetConsoleTextAttribute( hOut, 7 );
            cout << "Mag";
            SetConsoleTextAttribute( hOut, 6 );
            cout << " - Posiada wysoki poziom mocy umiejetnosci oraz malo ilosc zycia" << endl;
            SetConsoleTextAttribute( hOut, 7 );
            cout << "Olbrzym";
            SetConsoleTextAttribute( hOut, 5 );
            cout << " - Bardzo mocny i wytrzymaly duza ilosc zycia i pancerzu" << endl << endl;
            SetConsoleTextAttribute( hOut, 7 );
            // gracz wybiera klase postaci
            cout << "Wybierz klase postaci: ";
            cin >> wybierz_klase;
           
            if((( wybierz_klase != "Wojownik" ) &&( wybierz_klase != "Mag" ) &&( wybierz_klase != "Olbrzym" ) ) )
            {
                cout << "Nie ma takiej klasy!";
            }
        }
        break;
    case 2:
        {
            system( "cls" );
            cout << "Autor: xxx";
           
           
        }
    case 3:
        {
            system( "cls" );
            exit( 0 );
           
        }
        break;
        default: cout << "Blad wyboru! Spruboj Ponownie"; break;
       
    }
   
    return 0;
   
}

wybierz_klase -> zadeklarowałes jako int, a chciałeś wsadzić tam string.
Bez dodania biblioteki "string", nie działa operator >> dla stringów.
P-152931
carlosmay
» 2016-10-26 09:02:00
Bez dodania biblioteki "string", nie działa operator >> dla stringów.
Nie wszędzie. GCC ma zdefiniowany operator
>>
 i
<<
 dla
string
 w nagłówku <iostream>.
P-152934
Monika90
» 2016-10-26 16:44:25
To nie ważne co ma GCC, używasz std::string to piszesz #include <string>, takie są zasady.
P-152949
sobol3k
Temat założony przez niniejszego użytkownika
» 2016-10-27 01:47:59
Przepraszam wszystkich za durny temat bo problem okazał sie duzą błachostką. Szczególnie dziękuje za pomoc użytkownikowi ArgonZapan :)
Można zamknąć!
P-152975
carlosmay
» 2016-10-27 08:57:38
To nie ważne co ma GCC, używasz std::string to piszesz #include <string>, takie są zasady.
Nie podważam zasad.
P-152977
« 1 »
  Strona 1 z 1