Forum: C++ problem

Forum huvudsida -> Programmering -> C++ problem

Sidor: 1

Till botten

Gazrog2 22:49 - 19:e April 2006 | Post #1
Medlem
Inlägg: 71


Skicka PM
Jag har tänkt göra ett seriöst försök att ta upp C++ programmeringen, och den här gången hade jag tänkt göra något som jag inte gjorde förra gången jag höll på med C++, nämligen att skriva mer än 20 rader kod. Detta för att jag tror man lär sig bättre om man programmerar lite mellan varven man läser Smiley

Men iaf denna kod skrev jag:

  1.  
  2. #include <iostream>
  3. using namespace std;
  4. char h;
  5. int main()
  6. {
  7. cout << "Please enter a letter";
  8. if(!(cin >> h) == "h" )
  9. cout << "You suck";
  10. return 0;
  11. }

Detta felmedelande fick jag:
Hejsan.cc:3: error: invalid conversion from EUR~const char*EUR(TM) to EUR~charEUR(TM)
Hejsan.cc: In function EUR~int main()EUR(TM):
Hejsan.cc:7: error: ISO C++ förbjuder jämförelse mellan pekare och heltal


Jag är trött och vill sova göra och då tänkte jag att det skulle vara fett att veta vad de menar med att den förbjuder en jämförelse mellan pekare och heltal då jag inte använder någon jävla pekare eller något heltal..eller det gör jag väl antagligen, men jag måste ha råkat missa någon sida i min bok eller nå.

Och vad vill jag då att ni ska göra? Jo, skriva en fungerande kod och förklara vad jag gjorde fel samt förklara kopplingen mellan min char variabel och pekaren samt min "h" grunka och heltalet (eller om det var tvärtom).

Och beträffande koden så hade jag ingen fantasi utan skrev bara något för att testa om det funkade Smiley

Jaaaaaaaaaaaaa, sen om ni orkar så kan ni ju tipsa om en inte alltför dålig bärbar dator i 3000-4000kr klassen Smiley
Ska bara använda den till att shell-scripta, programmera, försöka lära mig lite mer om GNU/Linux och surfa och sån skit.


-------------------------
Ingen signatur!

Senast redigerad 00:43 - 20:e April 2006


HärJ 00:42 - 20:e April 2006 | Post #2
Moderator
Inlägg: 1198


Skicka PM
    Citat av Gazrog2:
Jaaaaaaaaaaaaa, sen om ni orkar så kan ni ju tipsa om en inte alltför dålig bärbar dator i 3000-4000kr klassen Smiley
Ska bara använda den till att shell-scripta, programmera, försöka lära mig lite mer om GNU/Linux och surfa och sån skit.

vill ju inte vara petig men du borde skapat en egen tråd för denna fråga. btw kan du inte surfa?

angående ditt problem så rekomenderar jag string istället för char. jag rekomenderar också att du lägger cin på en egen rad
sen borde väl if-satsen vara inramad av {}?
jag kan inte c++ så jag kan ha fel i det mesta. men jag skulle ha gjort:
  1. #include <iostream>
  2. using namespace std;
  3. string h;
  4. int main()
  5. {
  6. cout << "Please enter a letter";
  7. cin >> h;
  8. if(h == "h" )
  9. {
  10. cout << "You suck";
  11. }
  12. return 0;
  13. }


egentligen skulle jag gjort:
  1. (defun main ()
  2. (format t "Please enter a letter: ")
  3. (if (equal (read-line) "h")
  4. (format t "You suck!")))

men det är ju bara jag Smiley

EDIT: fixa ett kodblock till dig Smiley

-------------------------
Tänk om jag vore en skalärprodukt!

Senast redigerad 00:43 - 20:e April 2006


Celeron 06:31 - 20:e April 2006 | Post #3
Medlem
Inlägg: 418


Skicka PM
Felet är att du gämför en char med en sträng ("h"). Strängar är char*. Det där med strängar och heltal är egentligen samma sak. En char är egentligen bara ett heltal (oftast) från 0 till 256. Eftersom det bara är ett tecken du vill gämföra med så kan du göra så här:
  1.  
  2. #include <iostream>
  3. using namespace std;
  4. char h;
  5. int main()
  6. {
  7. cout << "Please enter a letter";
  8. if(!(cin >> h) == 'h' )
  9. cout << "You suck";
  10. return 0;
  11. }

Detta kollar alltså om tecknet man matade in inte är h. Med string skulle det se ut så här (och du skulle kunna ha ett helt ord at gämföra med).
  1.  
  2. #include <iostream>
  3. #include <string>
  4. using namespace std;
  5. string h;
  6. int main()
  7. {
  8. cout << "Please enter a letter";
  9. if(!(cin >> h) == "h" )
  10. cout << "You suck";
  11. return 0;
  12. }

Men det är bra att lära sig att använda char och char* även om man oftast inte använder dom senare (om man inte absolut vill).

-------------------------
Det viktigaste är att ha roligt! Har ny hemsida: http://www.freewebs.com/cpperik/



Nissebosselasse 08:29 - 20:e April 2006 | Post #4
Medlem
Inlägg: 490


Skicka PM
Vill inte vara petig på morgonkvisten, men 0-255 är det ju... Smiley

-------------------------
http://pushingcows.se
Gula Nallen



Gazrog2 09:47 - 20:e April 2006 | Post #5
Medlem
Inlägg: 71


Skicka PM
Tackar Smiley
Och ja, jag kan surfa och göra allt det där på min stationära dator men skulle vilja ha en bärbar eftersom vi far upp till Gällivare nästan varje lov, och för att hålla på att leka med nätverket och lite sånt Smiley


Förresten, hur gör man så att man inte behöver trycka på enter? Jag menar som i nethack då gubben förflyttar sig bara man trycker ner en tangent.

-------------------------
Ingen signatur!

Senast redigerad 10:27 - 20:e April 2006


Celeron 16:37 - 20:e April 2006 | Post #6
Medlem
Inlägg: 418


Skicka PM
Nissebosselasse: Just det ja, men det är 256 tal.

Gazrog2: Går inte i standard, men det finns en funktion som finns i många kompilatorer som heter getch(); och den väntar inte på enter. Har för mig att man använder den så här:
  1.  
  2. char ch=getch();


-------------------------
Det viktigaste är att ha roligt! Har ny hemsida: http://www.freewebs.com/cpperik/



Gazrog2 21:38 - 26:e April 2006 | Post #7
Medlem
Inlägg: 71


Skicka PM
Jag kanske skulle göra en ny tråd till det här men frågan känns så liten och fjesig så jag frågar den här i stället. Jag fattar inte riktigt det här med clipping area och viewport och fysiska kordinater och logiska kordinater och allt sånt skit.Jag har börjat lite lätt med OpenGL. Jag har försökt hitta någon sida som förklarar det men jag har faktist inte lyckats hitta nån Smiley . Så om någon vet någon bra sida där de förklarar det lite enkelt så kan ni ju länka till den eller så kan ni förklara det lite snabbt så låter vi den här tråden falla i glömska sen Smiley



-------------------------
Ingen signatur!

Senast redigerad 21:39 - 26:e April 2006


Burglar 00:24 - 27:e April 2006 | Post #8
Medlem
Inlägg: 59


Skicka PM
Clipping handlar om hur grafikkortet klipper bort trianglar som inte kommer att synas på din skärm (det är ju väldigt onödigt att pressa in data i pipelinen till graffet när det inte kommer synsas.
Det finns en alldeles förträfflig tutorial på gamedev.net ifall du är sugen på OGL.

-------------------------
,,hh signatur! jag är skeptisk!



Celeron 06:42 - 27:e April 2006 | Post #9
Medlem
Inlägg: 418


Skicka PM
http://nehe.gamedev.net/ för att vara mer exakt. Men om du inte har programmerat så mycket förut så kanske du ska vänta lite med OpenGL?

-------------------------
Det viktigaste är att ha roligt! Har ny hemsida: http://www.freewebs.com/cpperik/



Gazrog2 15:10 - 27:e April 2006 | Post #10
Medlem
Inlägg: 71


Skicka PM
    Citat av Celeron:
http://nehe.gamedev.net/ för att vara mer exakt. Men om du inte har programmerat så mycket förut så kanske du ska vänta lite med OpenGL?


Tack för länken Smiley
Nu har jag säkert läst C++ i nån vecka så nog skola det här gå bra. Dessutom så följde jag C++ tutorialn på den här sidan för nåt år sen. Jag har kollat i några OpenGL tutorials och det verkar vara ganska enkelt ändå så det ska nog gå bra..får jag hoppas Smiley


-------------------------
Ingen signatur!



Sidor: 1

Forum huvudsida -> Programmering -> C++ problem
Atom feed

Du får inte posta i den här tråden | Till toppen