Problem beim ersten Passwort geschützten Prog.



  • Hi zusammen!

    ich bin ein ziehmlicher neuling in C++ (lerne es gerade in einer ausbildung) und habe ein fast schon peinliches simples Prog geschrieben was Zahlen Quadriert. Dieses Prog wollte ich dann noch mit einem Passwortschutz versehen was aber nicht so ganz klappt

    /* Test.cpp */               
    #include <stdio.h>           
    #include <string.h>
    #include <stdlib.h>          
    #include <iostream>       
    #include <conio.h>           
    #include <windows.h>
    
    using namespace std;
    
    int x = 0;     
    
    int main () {
    
    string password;
      cout << "Dieses Program benoetigt ein Passwort: ";
      getline (cin, password);
    
      if (password == "hallo") (
                   cout << "\n Willkommen in dem Programm!" <<endl
                   );
    
      else (
           cout << "\n Passwort falsch! Fuck off!\n Beende das Programm in 5 sekunden..."
           );
           Sleep (5000);
           return 0;
    
           system("pause>nul");
           return 0;
    
      cout <<" ***********************************************";
      cout <<                   "*                             " <<endl ;
      cout <<" *                                              *" <<endl ;
      cout <<" *                      's tool                 *" <<endl ;
      cout <<" *                      zum                     *" <<endl ;
      cout <<" *                   Quadrieren                 *" <<endl ;
      cout <<" *                     v.1.0                    *" <<endl ;
      cout <<" *                                              *" <<endl ;
      cout <<" ************************************************" <<endl <<endl ;
      cout <<" Willkommen !" <<endl;
      cout <<" Dies ist ein einfaches Programm um Ganze Zahlen zu Quadrieren." <<endl;
      cout <<" Die Anzahl ihrer Rechnungen sind begrenzt auf 10." <<endl;
      cout <<" Sie haben noch 10 Rechnungen offen inkl. dieser hier!" << endl << endl;
      cout <<" Die Anwendung ist die Bildung des Quadrats einer Zahl." << endl ;
      cout <<" Geben sie einen beliebigen Wert fuer x ein:" << endl ;
      cout << "x : ";            
      cin >> x;                  
      cout << "x * x = " << x*x << endl << endl ; 
      cout << "Sie haben noch 9 Rechnungen offen inkl. dieser hier!" << endl << endl;
      cout <<" Die Anwedung ist die Bildung des Quadrates einer Zahl." << endl ;
      cout <<" Geben sie einen beliebigen Wert fuer x ein:" << endl ;
      cout <<" x : ";
      cin >> x;
      cout << "x * x = " << x*x << endl << endl;
      cout << "Sie haben noch 8 Rechnungen offen inkl. dieser hier!" << endl << endl;
      cout <<" Die Anwedung ist die Bildung des Quadrates einer Zahl." << endl ;
      cout <<" Geben sie einen beliebigen Wert fuer x ein:" << endl ;
      cout <<" x : ";
      cin >> x;
      cout << "x * x = " << x*x << endl << endl;
      cout << "Sie haben noch 7 Rechnungen offen inkl. dieser hier!" << endl << endl;
      cout <<" Die Anwedung ist die Bildung des Quadrates einer Zahl." << endl ;
      cout <<" Geben sie einen beliebigen Wert fuer x ein:" << endl ;
      cout <<" x : ";
      cin >> x;
      cout << "x * x = " << x*x << endl << endl;
      cout << "Sie haben noch 6 Rechnungen offen inkl. dieser hier!" << endl << endl;
      cout <<" Die Anwedung ist die Bildung des Quadrates einer Zahl." << endl ;
      cout <<" Geben sie einen beliebigen Wert fuer x ein:" << endl ;
      cout <<" x : ";
      cin >> x;
      cout << "x * x = " << x*x << endl << endl;
      cout << "Sie haben noch 5 Rechnungen offen inkl. dieser hier!" << endl << endl;
      cout <<" Die Anwedung ist die Bildung des Quadrates einer Zahl." << endl ;
      cout <<" Geben sie einen beliebigen Wert fuer x ein:" << endl ;
      cout <<" x : ";
      cin >> x;
      cout << "x * x = " << x*x << endl << endl;
      cout << "Sie haben noch 4 Rechnungen offen inkl. dieser hier!" << endl << endl;
      cout <<" Die Anwedung ist die Bildung des Quadrates einer Zahl." << endl ;
      cout <<" Geben sie einen beliebigen Wert fuer x ein:" << endl ;
      cout <<" x : ";
      cin >> x;
      cout << "x * x = " << x*x << endl << endl;
      cout << "Sie haben noch 3 Rechnungen offen inkl. dieser hier!" << endl << endl;
      cout <<" Die Anwedung ist die Bildung des Quadrates einer Zahl." << endl ;
      cout <<" Geben sie einen beliebigen Wert fuer x ein:" << endl ;
      cout <<" x : ";
      cin >> x;
      cout << "x * x = " << x*x << endl << endl;
      cout << "Sie haben noch 2 Rechnungen offen inkl. dieser hier!" << endl << endl;
      cout <<" Die Anwedung ist die Bildung des Quadrates einer Zahl." << endl ;
      cout <<" Geben sie einen beliebigen Wert fuer x ein:" << endl ;
      cout <<" x : ";
      cin >> x;
      cout << "x * x = " << x*x << endl << endl;
      cout << "Sie haben noch 1 Rechnungen offen inkl. dieser hier!" << endl << endl;
      cout <<" Die Anwedung ist die Bildung des Quadrates einer Zahl." << endl ;
      cout <<" Geben sie einen beliebigen Wert fuer x ein:" << endl ;
      cout <<" x : ";
      cin >> x;
      cout << "x * x = " << x*x << endl << endl;
      cout << "Dies ist ihre letzte Rechnung! Danach wird das Programm geschlossen." << endl << endl;
      cout <<" Die Anwedung ist die Bildung des Quadrates einer Zahl." << endl ;
      cout <<" Geben sie einen beliebigen Wert fuer x ein:" << endl ;
      cout <<" x : ";
      cin >> x;
      cout << "x * x = " << x*x << endl << endl;
      getchar ();
    
    return 0;
    
    }
    

    wenn ich das passwort richtig eingebe springt er nicht zu dem richtigen Programm über und schließt das Fenster auch gleich nach 5 sek was er aber eig nur tun sollte wenn man das pw falsch eingibt.... bin langsam am verzweifeln hab schon fast alles rum probiert *g*

    wenn ich die zeilen unter else weg nehme

    Sleep (5000);
    return 0;

    system("pause>nul");
    return 0;

    dann funktioniert es richtig wenn man das pw richtig eingibt. Allerdings startet das quadrier prog wenn man das pw dann falsch eingibt auch ^^ so soll das aber nich sein 😉

    achja und wenn ihr dann noch das eher mikrige programm zum Quadrieren anschaut , könnt ihr mir dann vielleicht noch verraten wie man mehrere Variablen hinzufügt das man die zahl die man eingibt vielleicht nicht immer mit der gleichen zahl erweitert wird? oder wie ich eine endlosschleife einbaue das man vielleicht mehr als 10 Rechnungen machen kann ??? ^^

    wäre sehr froh wenn mir jemand helfen und mich aufklären könnte !

    Mfg Prime01



  • Ich würde dringend zu Schleifen und Funktionen raten, dann sparst du dir
    die eklige Codeduplizierung!

    Scope-Klammern sind geschweifte {}, nicht runde (). Du solltest ausserdem auf die Blöcke achten, dein Programm wird in jedem Falle beendet. Anweisungen nach return werden zudem nie ausgeführt.

    C-Header, die in C++ eingesetzt werden, haben ein c vorne dran, dafür keine Endung. Also <cstring> statt <string.h>, <cstdlib> statt <stdlib.h> etc.

    Von den windows-spezifischen Funktionen wie Sleep() und system() rate ich im Übrigen ab.



  • ich bin mal so nett:

    achja und wenn ihr dann noch das eher mikrige programm zum Quadrieren anschaut , könnt ihr mir dann vielleicht noch verraten wie man mehrere Variablen hinzufügt das man die zahl die man eingibt vielleicht nicht immer mit der gleichen zahl erweitert wird?

    versuchs mal mit der pow() Funktion

    oder wie ich eine endlosschleife einbaue das man vielleicht mehr als 10 Rechnungen machen kann ??? ^^

    Da ich gerade zeit hab:

    #include <iostream>
    #include <string>
    #include <cmath>
    
    int main()
    {
    	std::string password;
    	double a, b;
    
    	do
    	{
    		std::cout << "passwort eingeben: ";
    		std::getline( std::cin, password );
    	} while( password != "passwort" );
    
    	while( true )
    	{
    		std::cout << "zahl eingeben: ";
    		std::cin >> a;
    
    		std::cout << "Potenz:        ";
    		std::cin >> b;
    
    		std::cout << "ergebnis:      " << std::pow( a, b ) << '\n' << std::endl;
    	}
    }
    

    mfg



  • Oder mach das einfach mit einer Funktion.

    Ist zwar nicht die beste Lösung aber ich glaube für den Anfang die leichteste

    http://www.cpp-tutor.de/cpp/intro/toc.htm

    http://www.cpp-tutor.de/cpp/le07/le07_01.htm <-- Funktionen

    #include <stdio.h>
    #include <string.h> 
    #include <stdlib.h>           
    #include <iostream>       
    #include <conio.h>           
    #include <windows.h> 
    
    using namespace std; 
    
    int x = 0;     
    
    int main ()
    {
    
    int programm();
    
    string password; 
      cout << "Dieses Program benoetigt ein Passwort: "; 
      getline (cin, password); 
    
      if (password == "hallo")
       {
          cout << "\n Willkommen in dem Programm!" <<endl;
          programm();
       }
    
      else {
           cout << "\n Passwort falsch! love off!\n Beende das Programm in 5 sekunden...";
           Sleep (5000);
           return 0;
          }
    
    }
    
    int programm()
    {
    cout <<" ***********************************************"; 
      cout <<                   "*                             " <<endl ; 
      cout <<" *                                              *" <<endl ; 
      cout <<" *                      's tool                 *" <<endl ; 
      cout <<" *                      zum                     *" <<endl ; 
      cout <<" *                   Quadrieren                 *" <<endl ; 
      cout <<" *                     v.1.0                    *" <<endl ; 
      cout <<" *                                              *" <<endl ; 
      cout <<" ************************************************" <<endl <<endl ; 
      cout <<" Willkommen !" <<endl; 
      cout <<" Dies ist ein einfaches Programm um Ganze Zahlen zu Quadrieren." <<endl; 
      cout <<" Die Anzahl ihrer Rechnungen sind begrenzt auf 10." <<endl; 
      cout <<" Sie haben noch 10 Rechnungen offen inkl. dieser hier!" << endl << endl; 
      cout <<" Die Anwendung ist die Bildung des Quadrats einer Zahl." << endl ; 
      cout <<" Geben sie einen beliebigen Wert fuer x ein:" << endl ; 
      cout << "x : ";             
      cin >> x;                   
      cout << "x * x = " << x*x << endl << endl ; 
      cout << "Sie haben noch 9 Rechnungen offen inkl. dieser hier!" << endl << endl; 
      cout <<" Die Anwedung ist die Bildung des Quadrates einer Zahl." << endl ; 
      cout <<" Geben sie einen beliebigen Wert fuer x ein:" << endl ; 
      cout <<" x : "; 
      cin >> x; 
      cout << "x * x = " << x*x << endl << endl; 
      cout << "Sie haben noch 8 Rechnungen offen inkl. dieser hier!" << endl << endl; 
      cout <<" Die Anwedung ist die Bildung des Quadrates einer Zahl." << endl ; 
      cout <<" Geben sie einen beliebigen Wert fuer x ein:" << endl ; 
      cout <<" x : "; 
      cin >> x; 
      cout << "x * x = " << x*x << endl << endl; 
      cout << "Sie haben noch 7 Rechnungen offen inkl. dieser hier!" << endl << endl; 
      cout <<" Die Anwedung ist die Bildung des Quadrates einer Zahl." << endl ; 
      cout <<" Geben sie einen beliebigen Wert fuer x ein:" << endl ; 
      cout <<" x : "; 
      cin >> x; 
      cout << "x * x = " << x*x << endl << endl; 
      cout << "Sie haben noch 6 Rechnungen offen inkl. dieser hier!" << endl << endl; 
      cout <<" Die Anwedung ist die Bildung des Quadrates einer Zahl." << endl ; 
      cout <<" Geben sie einen beliebigen Wert fuer x ein:" << endl ; 
      cout <<" x : "; 
      cin >> x; 
      cout << "x * x = " << x*x << endl << endl; 
      cout << "Sie haben noch 5 Rechnungen offen inkl. dieser hier!" << endl << endl; 
      cout <<" Die Anwedung ist die Bildung des Quadrates einer Zahl." << endl ; 
      cout <<" Geben sie einen beliebigen Wert fuer x ein:" << endl ; 
      cout <<" x : "; 
      cin >> x; 
      cout << "x * x = " << x*x << endl << endl; 
      cout << "Sie haben noch 4 Rechnungen offen inkl. dieser hier!" << endl << endl; 
      cout <<" Die Anwedung ist die Bildung des Quadrates einer Zahl." << endl ; 
      cout <<" Geben sie einen beliebigen Wert fuer x ein:" << endl ; 
      cout <<" x : "; 
      cin >> x; 
      cout << "x * x = " << x*x << endl << endl; 
      cout << "Sie haben noch 3 Rechnungen offen inkl. dieser hier!" << endl << endl; 
      cout <<" Die Anwedung ist die Bildung des Quadrates einer Zahl." << endl ; 
      cout <<" Geben sie einen beliebigen Wert fuer x ein:" << endl ; 
      cout <<" x : "; 
      cin >> x; 
      cout << "x * x = " << x*x << endl << endl; 
      cout << "Sie haben noch 2 Rechnungen offen inkl. dieser hier!" << endl << endl; 
      cout <<" Die Anwedung ist die Bildung des Quadrates einer Zahl." << endl ; 
      cout <<" Geben sie einen beliebigen Wert fuer x ein:" << endl ; 
      cout <<" x : "; 
      cin >> x; 
      cout << "x * x = " << x*x << endl << endl; 
      cout << "Sie haben noch 1 Rechnungen offen inkl. dieser hier!" << endl << endl; 
      cout <<" Die Anwedung ist die Bildung des Quadrates einer Zahl." << endl ; 
      cout <<" Geben sie einen beliebigen Wert fuer x ein:" << endl ; 
      cout <<" x : "; 
      cin >> x; 
      cout << "x * x = " << x*x << endl << endl; 
      cout << "Dies ist ihre letzte Rechnung! Danach wird das Programm geschlossen." << endl << endl; 
      cout <<" Die Anwedung ist die Bildung des Quadrates einer Zahl." << endl ; 
      cout <<" Geben sie einen beliebigen Wert fuer x ein:" << endl ; 
      cout <<" x : "; 
      cin >> x; 
      cout << "x * x = " << x*x << endl << endl; 
      getchar ();
    
       return 0;
    
    }
    


  • erstmal Vielen Dank für eure Antworten !

    double *T schrieb:

    ich bin mal so nett:

    achja und wenn ihr dann noch das eher mikrige programm zum Quadrieren anschaut , könnt ihr mir dann vielleicht noch verraten wie man mehrere Variablen hinzufügt das man die zahl die man eingibt vielleicht nicht immer mit der gleichen zahl erweitert wird?

    versuchs mal mit der pow() Funktion

    oder wie ich eine endlosschleife einbaue das man vielleicht mehr als 10 Rechnungen machen kann ??? ^^

    Da ich gerade zeit hab:

    #include <iostream>
    #include <string>
    #include <cmath>
    
    int main()
    {
    	std::string password;
    	double a, b;
    	
    	do
    	{
    		std::cout << "passwort eingeben: ";
    		std::getline( std::cin, password );
    	} while( password != "passwort" );
    	
    	while( true )
    	{
    		std::cout << "zahl eingeben: ";
    		std::cin >> a;
    		
    		std::cout << "Potenz:        ";
    		std::cin >> b;
    		
    		std::cout << "ergebnis:      " << std::pow( a, b ) << '\n' << std::endl;
    	}
    }
    

    mfg

    vielen dank dafür ! allerdings komme ich nicht über die Passwort Frage weg. Ich interpretiere es so das "passwort" das pw sein soll. Wenn man es allerdings eingibt fragt er immer wieder nach dem Passwort und springt nicht zum main programm.
    kann mich da vllt noch jemand aufklären? wäre sehr dankbar!

    mfg Prime01



  • Kann ich nicht bestätigen. Das Programm funktioniert bei mir einwandfrei.



  • hmm und das passwort ist bei dir: "Passwort"?



  • hmm und das passwort ist bei dir: "Passwort"?

    Groß- und Kleinschreibung beachtet?



  • hab ich, "passwort" aber funktionieren tut es immer noch nicht 😞 benutze derzeit C++ Builder 5 von Borland weiß ja nicht vllt hat es auch was mit dem Compiler zu tun ?



  • BCB5 ist schon sehr alt 😉 Möglich wäre, dass der einen Fehler in std::getline hat und das newline Zeichen noch mit in den String schiebt. Halte ich aber für unwahrscheinlich.
    Am besten du holst dir mal MS Visual C++ 2008 Express Edition (gibts for free zum runterladen), dann könnte man das schonmal ausschließen.



  • Benutz mal ne Schleife Digga:

    int array[10];
    for(int zarray=0; zarray < 11; zarray++)
    {
    array[i] = i;
    }
    
    for(int i=0;i=11;i++)
    {
    cout << "x * x = " << x*x << endl << endl ;
      cout << "Sie haben noch" << array[i] <<  Rechnungen offen inkl. dieser hier!"<<  endl << endl;
      cout <<" Die Anwedung ist die Bildung des Quadrates einer Zahl." << endl ;
      cout <<" Geben sie einen beliebigen Wert fuer x ein:" << endl ;
      cout <<" x : "; 
     }
    
    //blablabla
    


  • Prime01 schrieb:

    hab ich, "passwort" aber funktionieren tut es immer noch nicht 😞 benutze derzeit C++ Builder 5 von Borland weiß ja nicht vllt hat es auch was mit dem Compiler zu tun ?

    versuch doch mal std::getline(); mit std::cin >> password; zu ersetzen. Wenns dann geht liegts 100% am Compiler.

    Gebangt schrieb:

    int array[10];
    for(int zarray=0; zarray < 11; zarray++)
    {
    array[i] = i;
    }
    
      //...
      cout << "Sie haben noch" << array[i] <<  Rechnungen offen inkl. dieser hier!"<<  endl << endl;
      //...
    
    //blablabla
    

    was soll denn das werden 😕 ? 👎


Anmelden zum Antworten