Witzprogramm schreiben ( Anfänger )
-
Hmm wie soll das denn gehen ?
zB.
char index[]
Aber wie sollen da die Witze quasi rein ?
Sowas hab ich noch nie gemacht.
-
Bin schon wieder ein Stückhen weiter..
#include <stdio.h> #include <iostream> #include <conio.h> #include <ctime> #include <iomanip.h> int main() { int mantawitz[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; srand(time(NULL)); char eingabe = 0; cout << "1: Mantawitz\n"; cout << "2: Blondienwitz\n"; cout << "3: Beamtenwitz\n"; cout << "\nWitzkategorie eingeben oder <ESC> fuer Exit:"; while (eingabe !=27) // ESC als einzige Abbruchbedingung { eingabe = getch(); // Warte auf Taste switch (eingabe) { case '1': cout << "\nDies ist ein Mantawitz.\n"; cout << endl << mantawitz[ rand()% 11 ]; break; case '2': cout << "\nDies ist ein Blondienwitz.\n"; break; case '3': cout << "\nDies ist ein Beamtenwitz.\n"; break; default: cout << "\n *******Falscheingabe******* \n " << endl; } } return 0; }
-
Hallo !
Ich habe gestern noch ne Menge rumprobiert, aber ich habe leider keine Möglichkeit gefunden, die Texte zu hinterlegen in einem Array so das sie ganz einfach aufgerufen werden vom Zufallsgenerator.
Mit den Zahlen klappts ganz gutEin kleiner Tipp wäre super
-
Hallo !
Bin wieder einen riesen Schritt weitergekommen.
Das einzige Problem was ich nun noch habe ist, dass er "Hallo" zum Beispiel zufällig mit l a h l l o oder ähnlich ausgibt.Hier das was ich gemacht habe....
[cpp]
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <conio.h>
#include <ctime>
#include <iomanip.h>int main()
{
srand(time(NULL));
char mantawitz[3][10] = { "Hallo", "2", "3" }; // NEU !
char eingabe = 0;
cout << "1: Mantawitz\n";
cout << "2: Blondienwitz\n";
cout << "3: Beamtenwitz\n";
cout << "\nWitzkategorie eingeben oder <ESC> fuer Exit:";
while (eingabe !=27) // ESC als einzige Abbruchbedingung
{
eingabe = getch(); // Warte auf Taste
switch (eingabe)
{
case '1':
cout << "\nDies ist ein Mantawitz.\n";
cout << endl << mantawitz[0] [ rand()% 11 ];break;
case '2': cout << "\nDies ist ein Blondienwitz.\n";
break;
case '3': cout << "\nDies ist ein Beamtenwitz.\n";
break;default:
cout << "\n *******Falscheingabe******* \n " << endl;}
}return 0;
}
-
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]