Variable char
-
Hm, aber die gleiche Idee ;).
Ist das '\n' absichtlich nicht "gehighlighted"?
-
Dein '!' ist auch nicht gehighlightet. Gibts anscheinend nicht für Zeichenliterale.
-
Also entweder lese ich das Falsch oder es is nich ganz das was ich wollte. Das was ich will sollte eher so aussehen:
#include <iostream.h> char text; [...] cin>>text; cout<<text<<endl; [...]
Um es mal in Kurzform zu sagen, ich will diesem char keinen Zeichensatz geben sondern er soll ihn von der Tastatur empfangen.Und das was er Empfangen soll is größer als das was reinpasst (also mehr als 1 Zeichen). Wie mache ich das??
-
simpel:
#include <iostream> #include <string> using namespace std; int main() { cout << "was eingeben: "; string eingabe; cin >> eingabe; cout << "Sie haben " << eingabe << " eingegeben.\n"; }
-
Bashar schrieb:
schonwieder ... ich werd alt
jo
-
Das funzt so bei mir nicht, selbst wenn ichs so Compile wie dus geschrieben hast sind noch Fehler drin. Wenn ichs in Mein Programm einarbeite dann mag er das str nich und das string weiter unten auch nicht.
#include <iostream.h> char text; char yn; void main () { cout<<"Gieb einen Vornamen ein: "; marke1: cin>>text; cout<<endl; if (text == 'tim') cout<<"..."<<text<<"..."<<endl; else if (text == 'karl') cout<<"..."<<text<<"..."<<endl; else if (text == 'felix') cout<<"..."<<text<<"..."<<endl<<"..."<<endl<<"..."<<endl; else if (text == 'daniel') cout<<"..."<<text<<"..."<<endl; else cout<<"..."<<text<<"..."<<endl; marke2: cout<<endl; cout<<"Ist sonst noch jemand da?? j/n "; cin>>yn; cout<<endl; if (yn == 'j') cout<<"Wer ist es?? "; goto marke1; else if (yn == 'J') cout<<"Wer ist es?? "; goto marke1; else if (yn == 'n') cout<<"Tschuess"; else if (yn == 'N') cout<<"Tschuess"; else cout<<"Falsche Eingabe. Bitte erneut Versuchen."; goto marke2; }
So sieht mein Programm aus, hab die Textstellen etwas eingekürzt, Sinn des programms ist es das man seinen namen eingiebt und das programm dazu einen Kommentar ausgiebt der den namen enthält, wenn 4 bestimmt Namen fallen kommen 4 bestimmte Kommentare danach kommt die Abfrage ob man noch einen anderen namen eingeben will. Das mit dem If und Else funzt an einigen Stellen nich, weils mehr als eine Zeile is, ich weis aber noch nich wie ich das ausbügeln kann, also wenn jemand dafür ne lösung hat wäre das auch toll, ansonsten reicht mir ne Lösung dafür das char text endlich mal ganze Namen schluckt. Wenns geht haltet die Lösung bitte so einfach wie der Rest meines Programms is.
-
#include <iostream> // ohne .h #include <string> // für std::string using namespace std; //char text; // mit char kannst du nur *ein* Zeichen speichern! //char yn; // keine unnötigen globalen Variablen! void fragen() { string text; // in einen String kannst du mehr als ein Zeichen speichern cout<<"Gib einen Vornamen ein: "; // "Gib" nicht mit "ie" cin>>text; cout<<endl; if (text == "tim") // Zeichenketten in "", Zeichen in '' cout<<"..."<<text<<"..."<<endl; else if (text == "karl") cout<<"..."<<text<<"..."<<endl; else if (text == "felix") cout<<"..."<<text<<"..."<<endl<<"..."<<endl<<"..."<<endl; else if (text == "daniel") cout<<"..."<<text<<"..."<<endl; else cout<<"..."<<text<<"..."<<endl; } void schleife() { for(;;) { fragen(); bool weiterfragen=true; while (weiterfragen) { char yn; cout<<endl; cout<<"Ist sonst noch jemand da?? j/n "; cin>>yn; cout<<endl; switch (yn) { case 'n': case 'N': return; case 'j': case 'J': cout<<"Wer ist es?? "; weiterfragen = false; break; default: cout<<"Falsche Eingabe. Bitte erneut Versuchen."; } } } } int main() // kein void main() { schleife(); cout<<"Tschuess"; }
Du musst das noch ordentlich einrücken.
Das geht natürlich noch schöner, aber ich wollte deinen Aufbau beibehalten.
-
Danke, muß ich mir mal genau anschaun, das ich auch alles verstehe.
Das hat der Compiler als Warnung rausgehauen: Funktion sollte einen Wert zurueckgeben; Ergebnistyp 'void' angenommen
-
An welcher Stelle? Hier ist das Ganze noch etwas sauberer:
#include <iostream> #include <string> using namespace std; void fragen() { string text; cout<<"Gib einen Vornamen ein: "; cin>>text; cout<<endl; if (text == "tim") cout<<"..."<<text<<"..."; else if (text == "karl") cout<<"..."<<text<<"..."; else if (text == "felix") cout<<"..."<<text<<"..."<<endl<<"..."<<endl<<"..."; else if (text == "daniel") cout<<"..."<<text<<"..."; else cout<<"..."<<text<<"..."; cout << endl; } void schleife() { for(;;) { fragen(); bool weiterfragen = true; while (weiterfragen) { char yn; cout << endl; cout << "Ist sonst noch jemand da?? j/n "; cin >> yn; cout << endl; switch (yn) { case 'n': case 'N': return; case 'j': case 'J': cout << "Wer ist es? "; weiterfragen = false; break; default: cout << "Falsche Eingabe. Bitte erneut Versuchen."; } } } } int main() // kein void main() { schleife(); cout<<"Tschuess"; }
-
Ups hab da beim rauskopieren ausm Compiler was unterschlagen bei int main is die Stelle. Wenn du ICQ hast kannst du mich mal anschreiben ich hätte da nochn paar andere Fragen, auch zum Quelltext.
-
Dann schreibe am Ende von main() noch "return 0;".
Die Fragen kannst du hier im Forum stellen.
-
OK ich poste das jetzt einfach mal hier mit drunter.
Was is die Bedeutung von bool und wieso schreibst du int main statt void main???
-
schonwieder ... ich werd alt
jo
Nett.
Was is die Bedeutung von bool
bool ist ein Warheitswert. er kann entweder true oder false sein (beides Literale).
int a = 7; bool richtig_oder_falsch = (a == 5);
und wieso schreibst du int main statt void main???
Weil der Standard das verlangt.
-
bool - boolean type (falsch oder wahr)
int main() schreibt man weil es nach dem ISO Standard so festgelegt wurde.