void Funktion in einer void Funktion???
-
terraner schrieb:
Strogij schrieb:
terraner schrieb:
Mit break brichst du nur aus dem switch aus, aber bleibst in der do-while Schleife. Du bräuchtest z.B. goto
Ach Quark, goto ist doof, break kann auch Argumente erhalten, um aus geschachtelten Schleifen raus zu springen.
Wirklich?
Die Möglichkeit kenne ich gar nicht.
mfg
Entschuldigung, habe mich geirrt, in PHP gibt es diese Möglichkeit.
-
Danke joeX (C++ Gott).
Super erklärt.
Hat direkt funktioniert.Läuft einwandfrei.Respekt.
-
Das nächste Problem ist aufgetreten.
Programm wechselt einwandfrei zwischen den beiden Funktionen (read und write)
Wenn ich mich jetzt im write menü (write Funktion) befinde und ich die case Anweisung 'c' durchführe springt er ins vorherige read menu (read Funktion).
Jetzt soll die write Funktion arber so arbeiten, dass sie bei der case Anweisung 'c' in mein Startmenü (int main) wechselt.
Kann mir da ein netter C++ Freak weiterhelfen
Hier nochmal das ganze programm.
# include <iostream>
using namespace std;void write (char wzeichen);
void read (char rzeichen )
{
do
{
cout << "READ-MENÜ:" << endl;
cout << endl;
cout << "c : (close) Datei schließen" << endl;
cout << "r : (read) Datei lesen" << endl;
cout << "l : (lock) Datei zum Schreiben sperren" << endl;
cout << "Ihre Eingabe: " << endl;cin >> rzeichen;
switch (rzeichen)
{
case 'c' : return;
case 'r' : {cout << "Datei wird gelesen" << endl;}break;
case 'l' : {
char wzeichen;
write (wzeichen); //Aufruf write Funktion
}break;
default : {cout << "Unzulässige Eingabe" << endl;}break;
}
}
while (rzeichen != 'c');
}void write (char wzeichen)
{
do
{
cout << "WRITE-MENÜ:";
cout << endl;
cout << "c : (close) Datei schließen" << endl;
cout << "r : (read) Datei lesen" << endl;
cout << "w : (write) Datei schreiben" << endl;
cout << "u : (unlock) Datei freigeben" << endl;
cout << "Ihre Eingabe: " << endl;cin >> wzeichen;
switch (wzeichen)
{
case 'c' : return;
case 'r' : {cout << "Datei wird gelesen" << endl;}break;
case 'w' : {cout << "Datei wird geschrieben" << endl;}break;
case 'u' : {
char rzeichen;
read (rzeichen); //Aufruf read Funktion
}break;
default : {cout << "Unzulässige Eingabe" << endl;}break;
}
}
while (wzeichen != 'c');
}int main ( )
{
char eingabe;
do
{
cout << "STARTMENÜ:" << endl;
cout << endl;
cout << "o : (open) Datei öffnen" << endl;
cout << "e : (end) Programmende" << endl;
cout << "Ihre eingabe: " << endl;cin >> eingabe;
switch (eingabe)
{
case 'o' : {cout << "Datei öffnen" << endl;
char rzeichen ;
read (rzeichen); // Aufruf read Funktion
}break;
case 'e' : {cout << "Und Tschüss" << endl;}break;default : {cout << "Unzulässige Eingabe" << endl;}break;
}
}
while (eingabe!='e');
return 0;
}
-
dein code ist ohne code-tags absolut unleserlich!
da tun einem die Augen weh.
Die Antwort ligt doch schon in deiner Frage: überlege mal was du mit
case 'c' : return
in deiner write-Funktion bewirkst??
in deiner main wird rzeichen gar kein Wert
warum hat deine read-Funktion überhaupt einen Übergabeparameter??
-
Dich hat eigentlich schon jemand darauf hingewiesen, aber da hast du nicht verstanden, was er will.
Deshalb versuche ich's jetzt nochmal: Ich werde dir ersst weiterhelfen, wenn du mir folgendes erklärst: Warum hat deine read-Funktion ein Argument (rzeichen)? Was auch immer ich übergebe ist der Funktion egal, da es direkt durch die Eingabe über cin überschrieben wird.
-
Na toll, jetzt hat freshman auch nochmal drauf hingewiesen
-
warum hat überhaupt eine der beiden Fkts einen Parameter??
in read:
cin >> rzeichen
in write:
cin >> wzeichen
irgendwie alles zum schießen, wenn man sich den Code mal anschaut!
@Schranzer: Kennst du nen 'Modulplan'?? bitte nicht schlagen, soll ja noch nicht mal ein Ablaufdiagramm sein aber überleg' dir mal genau, was die Fkts alles leisten sollen und ob sie irgendwelche Informationen von den aufrufenden Funktionen bekommen sollen und von wo aus du wohin willst.
-
warum hat überhaupt eine der beiden Fkts einen Parameter??
Also es wurde darauf hingewisen. Das hat er Ignoriert. Dann hast du und ich beide nochmal darauf hingewisen. Das du es jetzt nochmal ansprichst ist irgendwie überflüssig.
BTW, Schranz ist scheiße
-
konnte nicht anders....fand es irgendwie nur urkomisch
-
Ne, das mit dem return ist klar, da komm ich wieder in read Funktion.
Was ist denn ein Übergabeparameter?
Hab erst angefangen C++ zu programmieren und hab keine Kentnisse von ähnlichen Programmiersprachen (sorry).Wie stell ich den den code-tags ein?
Bevor ich das Programm abschicke is das alles noch schön strukturiert.
-
einfach den Code im Nachrichtentxt-Fenster markieren und auf den Button C/C++ klicken