dabear Skrevet 21. august 2004 Del Skrevet 21. august 2004 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
søppel Skrevet 21. august 2004 Del Skrevet 21. august 2004 (endret) 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 21. august 2004 av søppel Lenke til kommentar
Tr1llobite Skrevet 25. august 2004 Del Skrevet 25. august 2004 Det har vel mer med aat b er en int eller noe, men compares med en string. Hvis du skal compare strings må du bruke strcmp uansett. Lenke til kommentar
saboi Skrevet 26. august 2004 Del Skrevet 26. august 2004 (endret) 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 26. august 2004 av saboi Lenke til kommentar
jajajalla Skrevet 26. august 2004 Del Skrevet 26. august 2004 Hmm, for meg virker det som om du på linje 33 og 38 prøver å sammenligne en string med en integer. Dette er jo ikke helt måten å gjøre det på i alle fall, jeg ville ha deklarert b som en string, og problemet ville antageligvis ha løst seg. Lenke til kommentar
PerDegn Skrevet 26. august 2004 Del Skrevet 26. august 2004 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
Dead_Rabbit Skrevet 26. august 2004 Del Skrevet 26. august 2004 Samme svar tre ganger, ikke verst(men tror han har skjønt det nå) Lenke til kommentar
saboi Skrevet 26. august 2004 Del Skrevet 26. august 2004 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
søppel Skrevet 26. august 2004 Del Skrevet 26. august 2004 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
PerDegn Skrevet 26. august 2004 Del Skrevet 26. august 2004 Beklager Saboi! Jeg misforsto! Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå