Witzprogramm schreiben ( Anfänger )
-
Vielleicht solltest du es mal so probieren
cout << endl << mantawitz[rand() % 3];
So wie du es bisher machst, gibst du ja immer nur ein Zeichen aus. Zudem besteht die Möglichkeit, dass du auf ungültigen Speicher zugreifst, da nicht jeder String 10(+1) Zeichen lang ist.
-
Das hilft mir nicht unbedingt, denn er gibt zB. Hallo immernoch einzelnd aus...
-
Ich dachte, genau das willst du.
Was willst du denn ausgeben?
-
Die Witze komplett und nicht nur einzelne zeichen.
Es soll per Zufall ein ganzer Witz ausgegeben werden...
-
Ja und, das tut es doch auch. Statt "Hallo" schreibst du halt einfach deinen Witz rein.
-
Du verstehst mich falsch
Er gibt eben nicht Hallo aus sondern zB H oder L oder so.. Nicht das ganze Wort an sich sondern nur einzelne Buchstaben.
-
Falsch:
cout << endl << mantawitz[0] [ rand()% 11 ];
Richtug:
cout << endl << mantawitz[rand()% 11] << endl;
beachte die Reihenfolge der []-Klammern
:xmas2:
-
Genau das hab ich ja auch schon gepostet, warum das bei ihm nicht funktioniert ist mir unverständlich.
-
Sorry das hatte ich übersehen..
Na ja prima jetzt funktioniert es ja wuderbar.
Kann ich die Witze über mehrere Zeilen schreiben oder muss ich da jedesmal nen neues Array machen ?
Bin leider nicht an dem Rechner auf dem das alles liegt.Danke vielmals !!!
-
Du könntest Newline Zeichen verwenden, zB
"Hallo\nNeue Zeile"
-
Das war mir schon klar nur müsste ich alles in einer Zeile im programm schreiben und kann nicht zB. für jeden Witz ne neue machen oder ähnlich.
Darauf wollte ich hinaus...In meinem Buch steht jedenfalls nicht, dass das möglich ist.
-
Also ein Beispiel
char mantawitz[6][120] = { "mfgöldfmglkdfsmglkdfgmskgm\n TEst" };
Da wo jetzt Test steht, dass nimmt er nicht mehr da liegt der Hase begraben.. :xmas1: Wie kann ich das machen ?
-
Hallo
du kannst einen einzelen String-Ausdruck nicht über mehrere Zeilen verteilen :
char mantawitz[6][120] = { "mfgöldfmglkdfsmglkdfgmskgm\nTEst" };
bis bald
akari
-
Nunja, eigentlich müsste das schon gehen, du musst nur die Strings splitten, zB
char mantawitz[6][120] = { "mfgöldfmglkdfsmglkdfgmskgm\n" "TEst", // naechster String };
-
Danke Groovemaster das geht
Spitze... Hoffentlich kann ich auch genügend Text bei einem langen Witz drin speichern...Gruß
-
groovemaster schrieb:
Nunja, eigentlich müsste das schon gehen, du musst nur die Strings splitten, zB
char mantawitz[6][120] = { "mfgöldfmglkdfsmglkdfgmskgm\n" "TEst", // naechster String };
Hmmm, jetzt ist aber doch der Witz nicht in einem String gespeichert sondern in einem Array von Strings.
Also passt in
char mantawitz[6][120]
Ein Witz mit 6 Zeilen a 120 chars rein.
für mehrere Witze bräuchte er dann wieder:
char mantawitz[anz_witze][6][120]
-
Jetzt sagt er mir bei folgendem Code
char sprueche[1][1]= { // Witzbeginn "Du bist ein Informatiker, wenn... \n " "du weisst, wie das Binär-System funktioniert. \n " "du weisst, was passiert, wenn man die Iso-Matte an die Phase hängt. \n " "du nicht weisst, wie man die Iso-Matte benutzst, da dich der sch* Bändel stört. \n " "du dich soeben gefragt hast: Iso-Matte? Bändel? \n " "du jemals eine weibliche Informatikerin kanntest. \n " "du jemals eine weibliche Informatikerin warst. \n " "die Hälfte deines Wortschatzes aus Abkürzungen wie TCP/IP, UDP, POP3, SMTP usw." " besteht. \n " "du zum Holz-hacken den Computer einschaltest. \n " "du danach am Holzscheit eine Buchse für ein RJ45-Kabel suchst. \n" "du MS nicht nur aus Prinzip scheisse findest. \n" "du Open-Source geil findest, obwohl du die Source nicht begreifst. \n" "du aber trotzdem eine Stunde über der Source brütest, um es zu versuchen. \n" "du schon öfters Nachts um zwei fast an einer Koffein-Überdosis gestorben " " wärst. \n " "du selbst besoffen und bekifft deinen Compi noch bedienen kannst. \n" "du DOOM schon mehrmals während der Mittagspause durchgegamet hast. \n" "du das schaffst ohne dass dir übel wird. \n" "du dir bei jedem neuen Produkt überlegst wie du es abstürzen lassen könntest. \n" "du wegen der Abnützung keine Buchstaben mehr auf der Tastatur erkennen kannst. \n" "du die Buchstaben auf deinem Keyboard sowieso nicht mehr brauchst. \n" "du eine saumässige Handschrift hast da du sie fast nie brauchst. \n" "du versuchst alle kaputten Elektronikgeräte mittels Löten zu flicken. \n" "du dich nach jeder einigermassen hübschen Frau umdrehst. \n" "du den Einstieg ins bürgerliche Leben garantiert nicht schaffen wirst. \n" "du s0g4r d4z n0ch l353n k4nn57.\n " "du das aber scheisse findest. \n" "du deine Wörter nur im ASCII-Format von dir gibst. \n" "du vor Kommentaren nicht \" sondern */ oder # schreibst.\n" "du nach Kommentaren nicht \" sondern /* oder schreibst. \n" "du keine Kommentare schreibst, da sie zu mühsam sind. \n , zweiter Witz, " " dritter Witz " };
48 C:\Dokumente und Einstellungen\***\Eigene Dateien\CPP\c Programme\versuch2\main.cpp initializer-string for array of chars is too long
Was hat das zu bedeuten ?
Es nützt nix wenn ich oben den String ändere also die Werte...
kann ich doch nicht soviel Text speichern ?? Wäre echt ärgerlich...
-
Was für Werte sind denn l und (nochmal) l
-
Hallo
du hast immer noch nicht so richtig Arrays verstanden, was?
[cpp] char sprueche[3][5000]= {
// Witzbeginn"Du bist ein Informatiker, wenn... \n "
"du weisst, wie das Binär-System funktioniert. \n "
"du weisst, was passiert, wenn man die Iso-Matte an die Phase hängt. \n "
"du nicht weisst, wie man die Iso-Matte benutzst, da dich der sch* Bändel stört. \n "
"du dich soeben gefragt hast: Iso-Matte? Bändel? \n "
"du jemals eine weibliche Informatikerin kanntest. \n "
"du jemals eine weibliche Informatikerin warst. \n "
"die Hälfte deines Wortschatzes aus Abkürzungen wie TCP/IP, UDP, POP3, SMTP usw."
" besteht. \n "
"du zum Holz-hacken den Computer einschaltest. \n "
"du danach am Holzscheit eine Buchse für ein RJ45-Kabel suchst. \n"
"du MS nicht nur aus Prinzip scheisse findest. \n"
"du Open-Source geil findest, obwohl du die Source nicht begreifst. \n"
"du aber trotzdem eine Stunde über der Source brütest, um es zu versuchen. \n"
"du schon öfters Nachts um zwei fast an einer Koffein-Überdosis gestorben "
" wärst. \n "
"du selbst besoffen und bekifft deinen Compi noch bedienen kannst. \n"
"du DOOM schon mehrmals während der Mittagspause durchgegamet hast. \n"
"du das schaffst ohne dass dir übel wird. \n"
"du dir bei jedem neuen Produkt überlegst wie du es abstürzen lassen könntest. \n"
"du wegen der Abnützung keine Buchstaben mehr auf der Tastatur erkennen kannst. \n"
"du die Buchstaben auf deinem Keyboard sowieso nicht mehr brauchst. \n"
"du eine saumässige Handschrift hast da du sie fast nie brauchst. \n"
"du versuchst alle kaputten Elektronikgeräte mittels Löten zu flicken. \n"
"du dich nach jeder einigermassen hübschen Frau umdrehst. \n"
"du den Einstieg ins bürgerliche Leben garantiert nicht schaffen wirst. \n"
"du s0g4r d4z n0ch l353n k4nn57.\n "
"du das aber scheisse findest. \n"
"du deine Wörter nur im ASCII-Format von dir gibst. \n"
"du vor Kommentaren nicht \" sondern / oder # schreibst.\n"
"du nach Kommentaren nicht \" sondern / oder schreibst. \n"
"du keine Kommentare schreibst, da sie zu mühsam sind. \n " ,
"zweiter Witz",
"dritter Witz "
};
[/cpp]
achte auch auf die Syntax bei dem zweiten und dritten Witz..Empfinde ich aber als ziemlich schlecht, nimm lieber
char *sprueche[3]= {...
bis bald
akari
-
Gast221212 schrieb:
Hmmm, jetzt ist aber doch der Witz nicht in einem String gespeichert sondern in einem Array von Strings.
Also passt in
char mantawitz[6][120]
Ein Witz mit 6 Zeilen a 120 chars rein.
für mehrere Witze bräuchte er dann wieder:
char mantawitz[anz_witze][6][120]
Nein. Du hast das nicht verstanden. Auch wenn du mehrmals in Quotes einbettest, es ist und bleibt ein String und kein Array von Strings.
@AlternativEnde ungeloggt
Mach es so wie akari gesagt hat, besser noch const und als unsized Arrayconst char* sprueche[] = {/*...*/};
Dort kannst du soviele String Literale reinschreiben wie du Lust hast, der Compiler verwaltet die Anzahl sozusagen von selbst.