Hallo zusammen, ich habe eine Frage. Ich möchte gerne eine Folge von Bustaben in eine Variable ein lesen und dann abfragen. Brauchen tue ich das für mein Programm. In diesem Programm gibt es eine bestimmte Anzahl von Fragen mit jeweils drei Antwortmöglichkeiten (A,B,C) Die antworten werden dann in die Variable eingelesen und am ende mit einem Schlüssel verglichen. Z.B.: ABCCA = ABCAA <-- Falsch! ABCCA = ABCCA <-- Richtig! Die Frage ist nur wie stelle ich das an? Also ich will dafür den Typ "Char" verwenden.
cin mehr darüber verrät das lehrbuch oder tutorial des vertrauens...
Vielleicht ist Char ja ein Typ für Strings, char wäre ja nur für ein Zeichen. :-)
Hy ! Stichwort String ! C++ hat dafür einen eigenen schönen Datentyp. http://www.cplusplus.com/reference/iostream/stringstream/ Ich verwende ganz gern http://www.cplusplus.com/reference/ (ohne jetzt hier Werbung zu machen) Hier kannst du alles gut erklärt mit Beispielen nachlesen. NICHT AUFGEBEN Du kriegst das alleine mit etwas nachlesen locker hin. Have fun
Meine Interpretation der Frage Er liest die Antworten sukzessive ein. Eine nach der anderen. Wobei er jedesmal nur 1 char benutzen will um dann die Antworten irgendwo zu sammeln. Allerdings hat er das Problem aller Newbies - nach der Eingabe des Benutzers muss der Benutzer noch Return drücken, was den TO stört. Nur leider hat C++ dafür kein Rezept. C++ weiß noch nicht einmal, dass es sowas wie eine Tastatur überhaupt gibt. Daher in deinem eigenen Interesse: Leb erst mal damit, bis du dann lernst, wie man sowas auf deinem konkreten System machen kann. Und für den Rest: Michael hat recht. Das ist nicht wirklich Hexenwerk. Wenn du jemals eine Eingabe in ein Programm programmiert hast, dann musst du das hinkriegen. Das hat jetzt nicht viel Sinn, dir das hier vorzubeten.
Danke für den Tipp. Ich habe es jetzt einen kleinen Versuch mit String geschrieben. #include "iostream" #include <conio.h> #include <string> using namespace std; int main () { string Antwort; cout << "1: "; cin >> Antwort; cout << endl; cout << "2: "; cin >> Antwort; cout << endl; cout << "3: "; cin >> Antwort; cout << endl; cout << "4: "; cin >> Antwort; cout << endl; cout << "5: "; cin >> Antwort; cout << endl; cout << "Die Antwort ist: "; cout << Antwort; getch (); } Allerdings schreibt er die Bustaben nich nacheinander in den String. Denn wenn ich am ende den String ausgeben lasse dann kommt nur der letzte Bustabe. Leider komme ich nicht darauf was ich falsch mache.
>Allerdings schreibt er die Bustaben nich
Du hattest oben schon "Bustaben" getippt! Einmal kann man sich ja
vertippen, aber dann reicht es auch. Und "nich" gibt es auch nicht, da
verliert villeicht selbst Herr Buchegger die Geduld.
>verliert villeicht
vielleicht!
Und dann vertippe ich mich auch gleich selber -- aber ich will ja auch
keine Hilfe...
Mit cin >> Antwort; wird die Variable "Antwort" jeweils neu befüllt. Die Werte, die vorher drin standen, werden glöscht. Wenn Du also die alten Werte in "Antwort" behalten willst, dann musst Du sie z.B. in einem anderen String speichern o.ä.
Oh sorry, ist mir gerade aufgefallen. Ich hoffe das wird mir noch mal verziehen. :D
Uwe schrieb: > Gugel mal strcat strcmp strcpy bloss nicht. Er benutzt std::string. Das ist schon in Ordnung.
nvidia schrieb: > Allerdings schreibt er die Bustaben nich nacheinander in den String. Natürlich nicht. Jede Eingabe ersetzt das was vorher im String stand. Wenn du int i; cin >> i; cin >> i; machst, würdest du dich auch schön bedanken, wenn die beiden Eingaben da irgendwie miteinander verknüpft werden würden.
Ja das stimmt. Aber wie kriege ich es dann hin, dass ein weiterer Wert dem String hinzugefügt wird?
nvidia schrieb: > Ja das stimmt. Aber wie kriege ich es dann hin, dass ein weiterer Wert > dem String hinzugefügt wird? Nicht "den" String überschreiben, sondern...
nvidia schrieb: > Ja das stimmt. Aber wie kriege ich es dann hin, dass ein weiterer Wert > dem String hinzugefügt wird? Wie wärs mit einer weiteren Stringvariable, in der du selber die Einzelteile zusammenfügst? Du liest einen String ein und hängst kopierst ihn in diese Hilfsvariable in der der komplette String entstehen soll. Dann liest du den nächsten String ein und hängst ihn hinten an den "kompletten String" an. Und mit der nächsten Eingabe machst du dasselbe noch einmal. Und so weiter. Es ist durchaus erlaubt mehrere Variablen zu benutzen.
Karl Heinz Buchegger schrieb: > Es ist durchaus erlaubt mehrere Variablen zu benutzen. Ich spiel jetzt mal den Karl Heinz und sage zum TO: Du brauchst ein C(++) Buch Und musst es auch lesen. So richtig von vorne, jedes Kapitel...
Danke für die Hilfe. Ich habe es hinbekommen. Udo Schmitt schrieb: > Ich spiel jetzt mal den Karl Heinz und sage zum TO: > Du brauchst ein C(++) Buch > Und musst es auch lesen. So richtig von vorne, jedes Kapitel... Klare Ansage. Könnt ihr mir denn ein gutes Buch empfehlen? Denn es gibt einige Bücher und die Lesermeinungen sind zu den Büchern sehr unterschiedlich.
nvidia schrieb: > Danke für die Hilfe. Ich habe es hinbekommen. Gut. > Klare Ansage. Könnt ihr mir denn ein gutes Buch empfehlen? Denn es gibt > einige Bücher und die Lesermeinungen sind zu den Büchern sehr > unterschiedlich. Das sind sie immer :-) Ich hab den Stroustrup immer seh gemocht, kenn aber auch Meinungen von Leuten, die damit nicht zurecht gekommen sind. Meine Empfehlung wäre: Geh an einem Nachmittag in eine Buchhandlung und schmökere einfach ein paar durch. Der mit dessen Stil du zurecht kommst, den nimmst du.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.