prog für password funztz i-wie nich
-
ist auch keine warnung...
-
void run(); int main() { run(); std::cin.get(); }
-
Achso.
Macht aber keinen Unterschied.schaich
-
schaich schrieb:
ja ich hab nur keinen anderen namen gefunden...
Oder was meinst du??Wie der Namenskollege schon andeutete: Am "Namen" liegt's nicht.
Du definierst Dir da eine Variable namens "run" und die rufst Du in main() auf ... nicht "die run()", die Du außen definiert hast.Gruß,
Simon2.
-
1. Inkludier <string>
2. Schreibe in der main routine ein return statement.Dann sollte es wenigstens kompilieren.
Gruss Simon
-
alles wie gehabt....
der merkt immernoch nicht dass ich ein passwort eingegeben hab...schaich
-
ja, aber vorher hats doch gar nicht korrekt kompiliert.
auf jedenfalls kannst du jetzt debuggen. dann findest du den fehler bestimmt.
-
Das ist auch eine endloss rekursion.

EDIT:
void Password::setPw(string newPw){ if(currentPw!="") { // hier kommt er nie an
-
Ich wollte nur mal anmerken dass eine lokale Funktionsdeklaration sowie ein fehlendes return in main in C++ vollkommen legal sind.
-
@LordJaxom
Ok, danke. Das fehlende return in in main generiert allerdings eine warning (vc++6.0). ev. ist das bei neueren kompilern nicht mehr der fall.
-
simon.gysi schrieb:
vc++6.0
... generiert noch deutlich mehr Probleme. Sofern man nicht gezwungen ist vc++ 6.0 zu verwenden sollte man davon (u.a. wegen fehlernder Standardkonformität) eh gewaltigen Abstand nehmen.
-
Anmerkung schrieb:
simon.gysi schrieb:
vc++6.0
... generiert noch deutlich mehr Probleme. Sofern man nicht gezwungen ist vc++ 6.0 zu verwenden sollte man davon (u.a. wegen fehlernder Standardkonformität) eh gewaltigen Abstand nehmen.
Danke für den Hinweis. Leider bin ich beim momentanen Projekt gezwungen. Ansonsten sind mit konformere und komfortablere IDE / Compiler auch lieber.
-
Wie kann ich denn Abfragen, ob ein Strin quasi leer ist also kein Zeichen hat??
MfG schaich
-
Hat sich erledigt, hab gar nicht gesehen, dass ich nur ein Gleichzeichen geschrieben hab.
-
steht in jeder C++-Referenz unter "strings"
www.cplusplus.com/reference
www.cppreference.com
-
empty() ...
#if !defined(PASSWORD_HPP__INCLUDED) #define PASSWORD_HPP__INCLUDED #if (_MSC_VER >= 1300) #pragma once #endif // (_MSC_VER >= 1300) #include <string> // std::string class Password { std::string m_current; public: Password(std::string const& password) : m_current(password) {} public: bool set(std::string const& password, std::string const& new_password) { if (m_current != password) return false; m_current = new_password; return true; } std::string const& get() const { return m_current; } }; #endif // PASSWORD_HPP__INCLUDED#include "password.hpp" #include <iostream> #include <string> int main() { Password password("test"); for (unsigned char i(1); i <= 3; ++i) { std::cout << "Passwort: "; std::string password; std::getline(std::cin, password); std::cout << "Neues Passwort: "; std::string password_new; std::getline(std::cin, password if (password.set(password, new_password) == false) std::cerr << "FEHLER: Falsches Passwort eingegeben! (Noch " << 3 - i << " Versuche)" << std::endl; else break; } std::cout << "Passwort: " << password.get() << std::endl; std::cin.get(); }So hast du es mal anständig unterteilt. Die Klasse Password lässt nur zu, das du ein neues Passwort setzt (set), wenn das Passwort stimmt. Insgesamt hat man 3 Versuche das Password richtig einzugeben (for 1 ... 3).
So in etwa das was du haben willst?
Wäre vllt jetzt ganz gut das m_current noch zu verschlüsseln usw
