Einfaches Problem... Textein/ausgabe

»JAM«

Grünschnabel
Hallo Leute, ich hab ein ganz simples Problem und ich weis nicht wie es genau heißt, deswegen kann ich nicht danach googeln oder so...
Also, ich möchte, dass ein Text so lange wiederholt wird, bis die Eingabe entweder ja , nein oder exit ist.

int main()
{
cout << "Dieses Progamm berechnet Quader und Rechtecke (Ende = exit)\n";

cout << "Moechten Sie Quader berechnen? ";
cin >> antwort;

if (strcmp(antwort, "ja") == 0)
{
cout << quadervol() << " cm3\n\n\n";
}

if (strcmp(antwort, "nein") == 0)
{
cout << rechteckfl() << " cm2\n\n\n";
}

if (strcmp(antwort, "exit") == 0)

system("pause");
return 0;

}

Ich hoffe ihr habt mich irgendwie verstanden :( man soll halt nochmal eingeben, bis entweder ja nein oder exit eingegeben wird....
 
Also ich weiß nicht ob ich dich richtig verstanden habe aber das hier wäre eine Lauffähige Lösung :

Code:
//---------------------------------------------------------------------------

#include <vcl.h>
#include <iostream.h> //Für Ein- und Ausgabe
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused

int quadervol();
int rechteckfl();

int main()
{
char antwort[10]; //Feld in das die Antwort gespeichert wird

cout << "Dieses Progamm berechnet Quader und Rechtecke (Ende = exit)\n";

cout << "Moechten Sie Quader berechnen? ";
cin >> antwort;

if (strcmp(antwort, "ja") == 0) 
{
cout << quadervol() << " cm3\n\n\n";
} 

if (strcmp(antwort, "nein") == 0) 
{
cout << rechteckfl() << " cm2\n\n\n";
}

if (strcmp(antwort, "exit") == 0)

system("pause");
getchar();  //Damit das Fenster nicht gleich wieder Verschwindet
return 0;

}

int quadervol()
{
 int a;
 cout << "Kantenlaenge in cm eingeben" << endl;
 cin >> a;
 return a*a*a;
}

int rechteckfl()
{
 int a,b,c;
 cout << "Laenge in cm: ";
 cin >> a;
 cout << "Breite in cm: ";
 cin >> b;
 cout << "Hoehe in cm: ";
 cin >> c;
 return a*b*c;
}

//---------------------------------------------------------------------------
 
ähm... nunja, das is zwar ne lauffähige Lösung, das find ich auch voll cool, nur das hilft mir leider nicht weiter, trotzdem danke. Wahrscheinlich hab ich mich mal wieder nicht verständlich ausgedrückt, also probier ichs nochmal, nur diesmal mit vollem Code:

//------------------------------------------------------------------------------------------------------------
#include <iostream.h>
#include <stdio.h>

unsigned int laenge, breite, hoehe;
unsigned int vol, flaeche;
char antwort[4+1];

int quadervol()
{

cout << "\n\nHier koennen Sie Quader berechnen (Angaben in cm)";
cout << "\nLaenge: ";
cin >> laenge;
cout << "\nBreite: ";
cin >> breite;
cout << "\nHoehe: ";
cin >> hoehe;

vol = laenge * breite * hoehe;
cout << "\n\nDas Volumen betraegt: ";

return vol;
}

int rechteckfl()
{

cout << "\n\nHier koennen Sie Rechtecke berechnen (Angaben in cm)\n";
cout << "Laenge: ";
cin >> laenge;
cout << "Breite: ";
cin >> breite;

flaeche = laenge * breite;
cout << "\n\nDie Flaeche betraegt: ";

return flaeche;
}

int main()
{
cout << "Dieses Progamm berechnet Quader und Rechtecke (Ende = exit)\n";

cout << "Moechten Sie Quader berechnen? ";
cin >> antwort;

if (strcmp(antwort, "ja") == 0)
{
cout << quadervol() << " cm3\n\n\n";
}

if (strcmp(antwort, "nein") == 0)
{
cout << rechteckfl() << " cm2\n\n\n";
}

if (strcmp(antwort, "exit") == 0)

system("pause"); //damit das Fenster nicht gleich geschlossen wird
return 0;

}

//------------------------------------------------------------------------

cout << "Moechten Sie Quader berechnen? ";
cin >> antwort;

dass soll so lange geschrieben werden, bis die Antwort entweder ja, nein oder exit ist.
ja für Quader, nein für Rechtecke und exit für Ende...
 
Mach einfach ein Do while Schleife drum rum, die die Abbruchkriterien stehen, such mal, das gabs hier glaub auch schon öfters
 
So, ich habe gesucht, ich habe gefunden... und bin trotzdem nicht weiter...

do
{
cout << "Moechten Sie Quader berechnen? ";
cin >> antwort;
}

while((antwort, "ja") || (antwort, "nein") || (antwort, "exit"));

es funktioniert zwar irgendwie, nur ist es jetzt egal was ich schreibe, er wiederholt immer wieder "Moechten Sie Quader berechnen", also hab ich bei der do-while Anweisung irgendwo nen fehler drinn, nur ich habe keine ahnung wo, weil ich mich noch nicht damit auskenne...

wenn ich anstelle von (antwort, "ja") (antwort == "ja") schreibe, dann darf ich nix anderes als "ja", "nein" oder "exit" eingeben, weil er sonst sofort beendet..
 
moin


Wie du doch oben schon gesehen hast kann man nciht einfach antwort == "ja" schreiben.
Du vergleichst also zwei Strings mit strcmp sind die beiden gleich wird eine 0 zurückgegeben.
So könntest du es z.B. so machen:
Code:
do
{
cout << "Moechten Sie Quader berechnen? ";
cin >> antwort;
}
while(strcmp(antwort, "ja") == 0)


mfg
umbrasaxum
 
Zurück