Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

11

18.01.2014, 15:25

Böser Nacho! 'Hat wichtige Info vergessen!
if (chEingabe == 'M','m')
würde man übrigens so schreiben if (chEingabe == 'M' && chEingabe == 'm')
Was könnte das Komma denn neben "und" heißen? Das Gegenteil schreibt man jedenfalls so: "||". [Unsinn]Wenn ich es schaffe noch mehr Hinweise zu geben kann ich bei Galileo arbeiten und mir dort die "Quizfragen" ausdenken :D[/Unsinn]
Wirst du hoffentlich noch in deinem Buch lesen. :D
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »NachoMan« (18.01.2014, 15:32)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

12

18.01.2014, 15:33

if (chEingabe == 'M','m')
würde man übrigens so schreiben if (chEingabe == 'M' && chEingabe == 'm')

Nein, würde man nicht. Das wird nämlich niemals true.
Ich ahne zwar, was Du damit ausdrücken wolltest, das führt aber mehr zur Verwirrung, als dass es jemandem hilft.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

13

18.01.2014, 15:42

Verdammt, ich hab natürlich die Zeichen vertauscht.
Jetzt ists natürlich alles Unsinn. Nochmal richtig:
"würde man übrigens so schreiben if (chEingabe == 'M' || chEingabe == 'm')
Was könnte das Komma denn neben "oder" heißen? Das Gegenteil von "||" schreibt man jedenfalls so: "&&"." Dann wirds wirklich zu einer Galileo Frage...

Hatte wohl die Gegenteilige formulierung im Kopf, die das selbe machen dürfe wenn ich mich nicht wieder irre: if (!(chEingabe != 'M' && chEingabe != 'm'))
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

14

19.01.2014, 01:07

Ja also am liebsten hätte ichs ja gern das man komplette Wörter eingeben kann. Bin zwar dankbar dafür das ihr mir sagt wie man es mit dem Spielprinzip coden könnte aber noch dankbar wär ich natürlich wenn ihr mir erklären könnt das ich komplette Wörter als Antwort eingeben kann.

- Das mit if (chEingabe == 'S','s'), mit dem Komma hab ich natürlich nicht im Buch gelesen. Aber da steht auch nicht drinn wie man es schreiben muss wenn man zwei Richtige Antworten gibt. Und ich weiß nicht ob Groß/kleinschreibung überhaupt gewertet wird oder einfach M ein m ist und ein m als M bleibt.^^


- Ich weiß nicht was die tolower funktion ist. Bitte wenn mir jemand einen Tipp/Hilfestellung gibt mit Beispielcode. Bin ja noch relativ noobig was Programmieren angeht aber bin wirklich sehr interessiert weiter zu lernen und von welchen die die Sprache sehr gut beherrschen etwas in mein Wissen einzufügen.



- Also wenn man [Unsinn]blablablabla[/Unsinn] in einem C++ Buch liest wurde das Titelblatt überklebt.^^ Und selbst in HTML dürfte man so etwas auch nicht zu sehen bekommen.^^


Danke für die Bisherigen Antworten. Freue mich über mehr Hilfe. :)

mfG


Edit: Realy? Nur weil ich "liest" mit "ß" geschrieben hatte konnt ich net posten? lol^^

Cranberry

Treue Seele

Beiträge: 312

Wohnort: Innsbruck, Tirol

  • Private Nachricht senden

15

19.01.2014, 10:58

Die Lösungen zu deinen Problemen wurden doch schon geschrieben, nur etwas über mehrere Posts verteilt.
1. char chEingabe durch std::string chEingabe ersetzen, damit solltest du dann ganze Wörter eingeben können
2. die tolower Funktion brauchst du nicht das kannst du nämlich einfach so machen:

C-/C++-Quelltext

1
if(chEingabe == "Richtige Antwort" || chEingabe == "richtige Antwort")


Jetzt musst du das nur noch so in deinen Code einbauen dann sollte es funktionieren.

Tankard

Treue Seele

Beiträge: 192

Beruf: Student, Hardware- und Softwareentwicklung als wissenschaftliche Hilfskraft

  • Private Nachricht senden

16

19.01.2014, 12:42

Ja also am liebsten hätte ichs ja gern das man komplette Wörter eingeben kann. Bin zwar dankbar dafür das ihr mir sagt wie man es mit dem Spielprinzip coden könnte aber noch dankbar wär ich natürlich wenn ihr mir erklären könnt das ich komplette Wörter als Antwort eingeben kann.

Die Lösung über std::string (siehe auch std::getline) wurde ja bereits genannt. Hast du an dieser Stelle deiner Lehrquelle vorgegriffen?

- Das mit if (chEingabe == 'S','s'), mit dem Komma hab ich natürlich nicht im Buch gelesen. Aber da steht auch nicht drinn wie man es schreiben muss wenn man zwei Richtige Antworten gibt. Und ich weiß nicht ob Groß/kleinschreibung überhaupt gewertet wird oder einfach M ein m ist und ein m als M bleibt.^^

Wenn if-Abfragen eingeführt werden dann sollte eigentlich auch direkt erklärt werden, welche boolschen Verknüpfungen möglich sind und wie diese angewendet werden. Auch die Frage ob Groß-/Kleinschreibung überhaupt einen unterschied macht lässt darauf schließen, dass nie erklärt wurde wie Zeichen überhaupt dargestellt werden.

- Ich weiß nicht was die tolower funktion ist. Bitte wenn mir jemand einen Tipp/Hilfestellung gibt mit Beispielcode. Bin ja noch relativ noobig was Programmieren angeht aber bin wirklich sehr interessiert weiter zu lernen und von welchen die die Sprache sehr gut beherrschen etwas in mein Wissen einzufügen.

Du wirst niemals alle Funktionen kennen.
http://lmgtfy.com/?q=c%2B%2B+tolower
Erster Treffer zeigt ein Beispiel. Allerdings würde ich da eher cstdio einbinden anstatt stdio.

17

21.01.2014, 03:20

Das mit den Zitaten kapier ich net.^^ Aber nutz die mal trotzdem.

Zitat

1. char chEingabe durch std::string chEingabe ersetzen, damit solltest du dann ganze Wörter eingeben können
Danke dir. :)


Zitat

Die Lösung über std::string (siehe auch std::getline) wurde ja bereits genannt. Hast du an dieser Stelle deiner Lehrquelle vorgegriffen?
Nein, also ich hatte bis Seite 63, Verzweigen mit switch und case im Buch "C++ für Spieleprogrammier" die 3. Auflage gelesen, allerdings ist das schon etwas länger her, schon ein halbes Jahr etwas. War einfach keine gute Zeit zum lesen und lernen. Aber nun fang ich wieder an, wollte dieses kleine Spiel 1. als Übung nehmen und 2. mal gucken ob was von den Standards von den ersten paar Seiten stecken geblieben ist. Cout und if ist ja schon ziemlich viel drinn.


Zitat

Wenn if-Abfragen eingeführt werden dann sollte eigentlich auch direkt erklärt werden, welche boolschen Verknüpfungen möglich sind und wie diese angewendet werden. Auch die Frage ob Groß-/Kleinschreibung überhaupt einen unterschied macht lässt darauf schließen, dass nie erklärt wurde wie Zeichen überhaupt dargestellt werden.
Ja, dort hatte ich wohl grad nen kleinen Blackout.^^ Wie Zeichen dargestellt werden ist mir bewusst, denke du meinst damit ob ich überhaupt weiß das alles was ich dort reinschreibe in Binärcode umgewandelt wird. Die vielen Nullen und Einsen.^^ Binär könnt ich jetzt nicht viel Anfangen aber ich weiß wie man Zahlen ganz leicht in Binär rausbekommt. Wenn ich mich grade nicht Täusche beginnt das A als Zahl mit 65? Naja is ja jetzt auch nicht soo verdammt wichtig.



Zitat

Du wirst niemals alle Funktionen kennen.
Habe ich auch im Buch gelesen, steht da glaube ich drinn kann mich zmd drann errinnern sowas gelesen zu haben. Als Anwendungsentwickler ist es durchaus erlaubt in Lybraries nachzugucken. Aber es ist doch auch durchaus möglich nach sehr langer Zeit und gutem Gehirn ziemlich fast alles zu wissen.^^




Zitat

http://lmgtfy.com/?q=c%2B%2B+tolower
Erster Treffer zeigt ein Beispiel. Allerdings würde ich da eher cstdio einbinden anstatt stdio.
Naja, hatte gehört es gibt viele Wege in der Programmierung um an sein Ziel zu kommen.




Edit: Was hab ich nun Falsch gemacht?


Ich habe char chEingabe; gegen std::string chEingabe; getauscht hatte ich 102 Fehler. Jetzt war ich so schlau hab einfach mal std: :string chEingabe; gemacht hab ich nurnoch 34 Fehler.

Bleibende Fehler die ich hab:

(error C2143: Syntaxfehler: Es fehlt ';' vor ':') den hab ich nur einmal.


(error C2065: 'chEingabe': nichtdeklarierter Bezeichner)

(error C2015: Zu viele Zeichen in der Konstante)


Error C2065 und C2015 hab ich zuoft um zu Zählen. Aber die Herkunft weiß ich bei Error C2015, ich kann trotz string nicht mehr als ein Zeichen als Antwort benutzen, hab ich wohl was falsch gemacht. Bei Error C2065 muss ja auch am string liegen.
Error C2143 weiß ich nicht woher der kommt.

Sorry wenn ich soviel Fragen und Fehler habe, sind glaube leichte Sachen.^^ Aber aus Fehlern lernt man am schnellsten. Ich könnte 10x das Buch durchlesen, ohne Praxis und Fehler würde man trotzdem nur schwer lernen ist meine Meinung.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Uliop« (21.01.2014, 03:42)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

18

21.01.2014, 07:26

switch/case geht nicht mit std::string.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Tankard

Treue Seele

Beiträge: 192

Beruf: Student, Hardware- und Softwareentwicklung als wissenschaftliche Hilfskraft

  • Private Nachricht senden

19

21.01.2014, 18:58

Zitat

Du wirst niemals alle Funktionen kennen.
Habe ich auch im Buch gelesen, steht da glaube ich drinn kann mich zmd drann errinnern sowas gelesen zu haben. Als Anwendungsentwickler ist es durchaus erlaubt in Lybraries nachzugucken. Aber es ist doch auch durchaus möglich nach sehr langer Zeit und gutem Gehirn ziemlich fast alles zu wissen.^^

Es gibt unzählige Libs, da kannst du nicht alle kennen. Du wirst vieles irgendwann kennen, weil du es einfach benutzt. Es macht ja auch wenig Sinn alles stumpf auswendig zu lernen. Man weiß halt irgendwann wo und wie man suchen muss.

Zitat

Wenn if-Abfragen eingeführt werden dann sollte eigentlich auch direkt erklärt werden, welche boolschen Verknüpfungen möglich sind und wie diese angewendet werden. Auch die Frage ob Groß-/Kleinschreibung überhaupt einen unterschied macht lässt darauf schließen, dass nie erklärt wurde wie Zeichen überhaupt dargestellt werden.
Ja, dort hatte ich wohl grad nen kleinen Blackout.^^ Wie Zeichen dargestellt werden ist mir bewusst, denke du meinst damit ob ich überhaupt weiß das alles was ich dort reinschreibe in Binärcode umgewandelt wird. Die vielen Nullen und Einsen.^^ Binär könnt ich jetzt nicht viel Anfangen aber ich weiß wie man Zahlen ganz leicht in Binär rausbekommt. Wenn ich mich grade nicht Täusche beginnt das A als Zahl mit 65? Naja is ja jetzt auch nicht soo verdammt wichtig.

Ja, Stcihwort ASCII. Daher sollte auch klar sein dass solche Abfragen CaseSensitiv sind.

Zitat

http://lmgtfy.com/?q=c%2B%2B+tolower
Erster Treffer zeigt ein Beispiel. Allerdings würde ich da eher cstdio einbinden anstatt stdio.
Naja, hatte gehört es gibt viele Wege in der Programmierung um an sein Ziel zu kommen.

Aber nicht alle Wege sind gleich gut.

Edit: Was hab ich nun Falsch gemacht?


Ich habe char chEingabe; gegen std::string chEingabe; getauscht hatte ich 102 Fehler. Jetzt war ich so schlau hab einfach mal std: :string chEingabe; gemacht hab ich nurnoch 34 Fehler.

Bleibende Fehler die ich hab:

(error C2143: Syntaxfehler: Es fehlt ';' vor ':') den hab ich nur einmal.


(error C2065: 'chEingabe': nichtdeklarierter Bezeichner)

(error C2015: Zu viele Zeichen in der Konstante)


Error C2065 und C2015 hab ich zuoft um zu Zählen. Aber die Herkunft weiß ich bei Error C2015, ich kann trotz string nicht mehr als ein Zeichen als Antwort benutzen, hab ich wohl was falsch gemacht. Bei Error C2065 muss ja auch am string liegen.
Error C2143 weiß ich nicht woher der kommt.

Sorry wenn ich soviel Fragen und Fehler habe, sind glaube leichte Sachen.^^ Aber aus Fehlern lernt man am schnellsten. Ich könnte 10x das Buch durchlesen, ohne Praxis und Fehler würde man trotzdem nur schwer lernen ist meine Meinung.

Es gibt kein std: und auch kein :string. Mit Leerzeichen rumspielen wenn etwas nicht funktioniert führt eher selten zum Ziel. Es gibt nur string im Namespace std und auf Elemente eines Namespaces wird nunmal mit dem :: Operator zugegriffen.

Wie schon erwähnt, funktioniert ein switch-case auch nicht mit Strings, sondern nur mit numerischen Konstanten.

20

22.01.2014, 00:39

Langsam komm ich echt verdammt durcheinander.^^


ich mach glaube irgendwas mit string falsch, denn es heißt ja auch immer zu viele Zeichen in der Konstante.? Bitte mir mal einer ein kurzen Abschnitt meines Quelltextes überarbeiten? Denke wenn ich den dann sehe würde ich es verstehen.

Danke. :)

Werbeanzeige