Gå til innhold

okay, noob trenger pointer / integer hjelp


Anbefalte innlegg

Yo, har tenkt å lære meg c++ og har så vidt begynt på et program, men trenger litt hjelp her. Har lest noen tutorials, men skjønner ikke dette. jeg får disse feilene ved kompilasjon:

C:\Documents and Settings\Bjørn Inge\Skrivebord\c++\rand.cpp In function `void  exit(int)': 
33 C:\Documents and Settings\Bjørn Inge\Skrivebord\c++\rand.cpp ISO C++  forbids comparison between pointer and integer 
38 C:\Documents and Settings\Bjørn Inge\Skrivebord\c++\rand.cpp ISO C++  forbids comparison between pointer and integer 

 

her er koden:

#include <iostream>
#include <conio.h>

using namespace std;

void square(int i);

void exit(int b);

int main()
{
   int status;
   int num;
   cout << "skriv inn et tall:";
   cin >> num;
   square(num);
   cout << "hva vil du gjoere? exit / fortsett";
   cin >> status;
   exit(status);
}

void square(int i)
{
   int sq = i * i;
   cout << "tallet ditt var  " << i <<endl;
   cout << " kvadrat av  "<< i << ": "<< sq <<endl;;
}

void exit(int b)
{

   
   if( b == "exit")
   {
       
       cout << "hade";
   }
   else if( b == "fortsett" )
   {
       cout << "lagd av bjorn inge \n Naa kan du slutte av :)";
       getch();
   
   
   }        
   

     
}    

Lenke til kommentar
Videoannonse
Annonse

Dette er ikke standard C++, C++ har ikke noen conio.h -header (og getch()-funksjon osv) definert for seg.

 

Jeg kan dermed ikke hjelpe deg, siden jeg ikke bruker samme kompiler som deg (borland?).

 

Det du kunne ha gjordt var å finne en bok (OG, eventuellt en kompiler) som følger standaren (standard C++).

 

Edit:

(jeg kunne kanskje ha konvertert programmet til standard c++ og kompilert det og fått tilsvarende feilmeldinger (tror ikke de har noe med den non-standard delen av koden din å gjøre, egentlig), men jeg er litt lat - beklager) .. heh

Endret av søppel
Lenke til kommentar

ja veit. Vi kan ikke hjelpe deg. Du har inkludert conio.h så da slutter vi bare å se på koden. selv om det er helt tydelig at du prøver å sammenligne en int med en string literal. Beklager. conio.h er ikke standard og da er all koden bare dritt.

med en gang jeg ser en ikkestandard ting så går jeg utfra at alt er fucka så da skriver jeg heller et innlegg her om hvor ikkestandard koden din er.

 

#include <string>

 

string status;

cin >> status;

 

void exit(const string& b)

{

if(b == "exit") {

cout << "hadet";

}

else if(b == "fortsett") {

cout << "Blalal";

}

}

 

osv

Endret av saboi
Lenke til kommentar

hei.

Tipper du bruker Borland jeg.

Koden din ser grei ut den bortsett fra at du sammenlikner en int med en string og det går ikke.

For å gjøre det på enklest mulig måte til å begynne med kan du gjøre følgende:

kommentar til koden:

 

1-exit-funksjonen byttet navn til eksit for at den ikke skal skape konflikt med en standard funksjon som heter exit.

 

2-Hvis du vil at en int skal avgjøre om programmet skal avsluttes eller ikke må du også skrive inn en int. Derfor ledeteksten: "Hva vil du gjøre? exit-tast 1/fortsett-tast 2"

Ønsker du å sammenlikne en string istedenfor må du definere at funksjonen skal ta imot en string og bruke funksjonen strcmp().

 

3- Jeg har kommentert ut den koden som ikke er standard C++ med "//" for dere som syntes det var litt vanskelig å svare dabear pga. "conio.h" og "getch()" (søppel og saboi).

 

#include <iostream>
//#include <conio.h>

using namespace std;

void square(int i);

void eksit(int b);

int main()
{
  int status;
  int num;
  cout << "skriv inn et tall:";
  cin >> num;
  square(num);
  cout << "Hva vil du gjoere? exit-tast 1/fortsett-tast 2";
  cin >> status;
  eksit(status);
  return 0;
}

void square(int i)
{
  int sq = i * i;
  cout << "tallet ditt var  " << i <<endl;
  cout << " kvadrat av  "<< i << ": "<< sq <<endl;;
}

void eksit(int b)
{

  
  if( b == 1)
  {
      
      cout << "hade";
  }
  else if( b == 2 )
  {
      cout << "lagd av bjorn inge \n Naa kan du slutte av :)";
      //getch();
  
  
  }        
  

    
} 

Lenke til kommentar

3- Jeg har kommentert ut den koden som ikke er standard C++ med "//" for dere som syntes det var litt vanskelig å svare dabear pga. "conio.h" og "getch()" (søppel og saboi).

 

jeg var ironisk. det jeg mente var at det var helt idiotisk å skrive et innlegg om at søppel ikke kunne hjelpe fordi han hadde #include <conio.h> som ikke hadde noe med feilen å gjøre i det hele tatt.

Lenke til kommentar

Vurderte å la være å svare noe som helst -- men når jeg så det var mange innom denne tråden uten å kommentere, tenkte jeg at det måtte være fordi de heller ikke gadd å kjøre dette igjennom kompileren sin. Sikkert greit å kommentere en mulig grunn; hvorfor. (i hvertfall i mitt tilfelle)

 

(jeg så seff. sammenligningen (int == char const*) .. men gadd ikke kommentere det, siden det kunne hende det var noe mer galt også -- som jeg ikke fikk sjekket i samme slengen .. og fordi jeg er lat, og er vannt til å ha en kompiler som "peker" for meg)

 

.. Når enden er god ..

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...