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

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

Ostatnio zmodyfikowano 2014-12-10 16:20
Autor Wiadomość
Kamil9477
Temat założony przez niniejszego użytkownika
[C++] ISO C++ forbids comparison between pointer and integer [-fpermissive]
» 2014-12-10 15:13:13
Witam, mam do napisania taki program:

Uruchamiam program z parametrami startowymi, np. 2 3 +.
Program ma podawać wynik działania 2+3, jeżeli zamiast + będzie stało * to ma pomnożyć itd.
Napisałem coś takiego:

C/C++
#include <iostream>
#include <cstdlib>

using namespace std;

int main( int argc, char * argv[] )
{
   
    if( argv[ 3 ] == '+' || argv[ 3 ] == '-' || argv[ 3 ] == '/' || argv[ 3 ] == '*' )
    {
        if( argv[ 3 ] == '+' )
        {
            cout << argv[ 1 ] << "+" << argv[ 2 ] << "=" << atoi( argv[ 1 ] ) + atoi( argv[ 2 ] ) << endl;
        }
       
        if( argv[ 3 ] == '-' )
        {
            cout << argv[ 1 ] << "-" << argv[ 2 ] << "=" << atoi( argv[ 1 ] ) - atoi( argv[ 2 ] ) << endl;
        }
       
        if( argv[ 3 ] == '/' )
        {
            cout << argv[ 1 ] << "/" << argv[ 2 ] << "=" << atoi( argv[ 1 ] ) / atoi( argv[ 2 ] ) << endl;
        }
       
        if( argv[ 3 ] == '*' )
        {
            cout << argv[ 1 ] << "*" << argv[ 2 ] << "=" << atoi( argv[ 1 ] ) * atoi( argv[ 2 ] ) << endl;
        }
    }
    else
    {
        cout << "Niepoprawe dane" << endl;
    }
   
   
    system( "pause" );
    return 0;
}

Wywala mi błąd kompilacji taki jak w temacie.
Jak można porównać element tablicy ze znakiem '+'?
P-122623
killjoy
» 2014-12-10 15:30:25
Argv to jest tablica tablic, czyli albo
argv[ 1 ][ 0 ] == '+'
 albo
strcmp( argv[ 1 ], "+" );
 ze <cstring>.
P-122624
akwes
» 2014-12-10 15:31:09
argv[] "zwraca" char*, a nie char.
P-122625
Kamil9477
Temat założony przez niniejszego użytkownika
» 2014-12-10 16:12:16
Działa, działa.
A jeżeli chciałbym operować ne tylko na liczbach całkowitych?
Funkcja atoi() już sie nie nada?
P-122627
Tomek_z_W11
» 2014-12-10 16:20:14
skoro atoi() to char to int, to należałoby poszukać czegoś ala char to double atod(), albo char to float atof():

http://cpp0x.pl/dokumentacja/standard-C/atof/238
P-122629
« 1 »
  Strona 1 z 1