helby Geschrieben 9. Oktober 2006 Geschrieben 9. Oktober 2006 Hallo ich habe da mal eine Frage: ich möchte ein Programm laufen lassen. Am Anfang werden die Menüpunkte abgefragt zb. Drücken Sie 1 um zu berechnen Drücken Sie 2 um zu speichern Drücken Sie 3 um das Programm zu beenden. die Abfrage mache ich mit switch case Wenn man 3 drückt wird man gefragt ob man das Programm wirklich beenden will, wenn ja wird das fenster geschlossen. Das mache ich mit einer if abfrage. Wie lautet der Befehl für "Programm beenden?" bzw. "Fenster schließen?" Danke Zitieren
TDM Geschrieben 9. Oktober 2006 Geschrieben 9. Oktober 2006 return 0; oder exit(0); für "hartes" Beenden Edit: Wenn es eine Win32-Anwendung ist. Zitieren
helby Geschrieben 9. Oktober 2006 Autor Geschrieben 9. Oktober 2006 Hilfe es kommen noch fehlermeldungen; :eek #include "stdafx.h" #include <iostream> #include <stdio.h> using namespace std; double dateigroesse ; double uebertragungsrate ; double ausgabezeit; double zeit; double kapazitaet; double ausgabedatei; int zahl; string antwort; void primProg (); void sekProg (); void abfrage(); void exitProg (); int main() { abfrage(); switch (zahl) { case 1: primProg (); break; case 2: sekProg (); break; default: exitProg; } return 0; } //1. Funktion der ersten Berechnung void primProg ()...{} //2. Funktion der zweiten Berechnung void sekProg ()...{ } //2. Beenden void exitProg () {cout<<"Moechten Sie das Programm wirklich beenden?"<<endl; cin>>antwort; // Es konnte kein Systemoperator gefunden werden, der einen rechtseitigen Operanden vom Typ 'std:string' akzeptiert (oder keine geeigntete Konvertierung möglich) if antwort==("ja") //systemfehler bezeichner 'antwort' exit(); else abfrage() // ungültiges else ohne dazugehöriges if } //1. Abfrage(zahl) void abfrage() { cout<<"Wenn Sie die Groesse der Datei und die Uebertragungsrate kennen und die Uebertragungsdauer erfahren moechten, drueckken Sie die 1"<<endl; cout<<"Wenn Sie die Uebertragungsdauer und die Uebertragungsrate kennen und die Dateigroesse erfahren moechten, druecken Sie die 2"<<endl; cout<<"Wenn Sie das Programm beenden moechten, druecken Sie die 3"<<endl; cin>>zahl; } Zitieren
Hakawamu Geschrieben 9. Oktober 2006 Geschrieben 9. Oktober 2006 könntest du uns bitte mitteilen was für fehlermeldungen und wann sie auftreten? Zitieren
TDM Geschrieben 9. Oktober 2006 Geschrieben 9. Oktober 2006 ihh globale Variablen... ich würd das so machen: int main() { abfrage(); switch (zahl) { case 1: primProg (); break; case 2: sekProg (); break; default: string lpEnd; cout << "Ende?:\t" cin >> lpEnd; if (lpEnd == "ja") return 0; break; } return 0; } Achtung, Pseudocode - der soll nur zum Denken anspornen. könntest du uns bitte mitteilen was für fehlermeldungen und wann sie auftreten? void exitProg () {cout<<"Moechten Sie das Programm wirklich beenden?"<<endl; cin>>antwort; // Es konnte kein Systemoperator gefunden werden, der einen rechtseitigen Operanden vom Typ 'std:string' akzeptiert (oder keine geeigntete Konvertierung möglich) if antwort==("ja") //systemfehler bezeichner 'antwort'exit(); else abfrage() // ungültiges else ohne dazugehöriges if } Zitieren
helby Geschrieben 9. Oktober 2006 Autor Geschrieben 9. Oktober 2006 die fehlermeldungen stehen als kommentar im quelltext. die kommen beim debuggen. Zitieren
helby Geschrieben 9. Oktober 2006 Autor Geschrieben 9. Oktober 2006 int main() { abfrage(); switch (zahl) { case 1: primProg (); break; case 2: sekProg (); break; default: string antwort; cout << "Ende?:\t" cin >> antwort;//error C2679: Binärer Operator '>>': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'std::string' akzeptiert (oder keine geeignete Konvertierung möglich) if (antwort == "ja") return 0; break; } return 0; } [/code] Kommt trotzdem fehlermeldung!!! :-( Zitieren
TDM Geschrieben 9. Oktober 2006 Geschrieben 9. Oktober 2006 Wie gesagt, Pseudocode... strings würd ich für sowas nicht verwenden. Lieber ein Char(-Array) und dann auf (cArray[0] == 'j' ) prüfen. Edit: ich seh grad - da fehlt so und so eine Schleife...: int main() { //int müsste hier auch gehen... int nEnd = 0; do { abfrage(); switch (zahl) { case 1: primProg (); break; case 2: sekProg (); break; default: cout << "Ende?:\t" cin >> nEnd; break; }while(nEnd != 'j'); return 0; } Zitieren
Guybrush Threepwood Geschrieben 9. Oktober 2006 Geschrieben 9. Oktober 2006 Wie gesagt, Pseudocode... strings würd ich für sowas nicht verwenden. Lieber ein Char(-Array) und dann auf (cArray[0] == 'j' ) prüfen. ??? Natürlich sollte man dafür Strings nehmen, was machst du denn mit deinem char-Array wenn der Benutzer mehr Buchstaben eingibt? Da es aber ja nur um ein Zeichen geht macht natürlich entweder char oder int mehr Sinn als eine Zeichenkette einzulesen. @helby du musst die string Datei includen damit du per cin>> einem string was zuweisen kannst. Zitieren
TDM Geschrieben 10. Oktober 2006 Geschrieben 10. Oktober 2006 Da es aber ja nur um ein Zeichen geht macht natürlich entweder char oder int mehr Sinn als eine Zeichenkette einzulesen. eben drum Zitieren
Guybrush Threepwood Geschrieben 10. Oktober 2006 Geschrieben 10. Oktober 2006 Öhm nein du hast geschrieben er solle anstatt Strings lieber char Arrays verwenden und dafür gibt es normalerweise keinen Grund wenn Strings zur Verfügung stehen weil sie sicherer sind und mehr Möglichkeiten bieten. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.