Passwort eingabemit Enter beenden!
-
Klappt leider immer noch nicht mit dem lesen !
Gib alles ein wenn dann Passwort kommt passiert nix wenn ich enter drück -.-
-
wenn ich 10 nehme wird die while schleife übersprungen!
-
Was soll den passieren, wenn du Enter drückst? Wie sieht dein Code aus?
-
Mein neuer code :
#include "regi.h" int main() { string name; makelibary(kontoName()); ofstream fout(makeDats(name).c_str()); fout<<standartVar::n << '\n'; fout<< Id()<<'\n'; fout<< Passwort(); return 0; }#ifndef REGI_H_INCLUDED #define REGI_H_INCLUDED #include <iostream> #include <fstream> #include <string> #include <sys/stat.h> #include <sys/types.h> #include <termios.h> using namespace std; namespace standartVar { int n = 2; } int getch() { static int ch = -1, fd = 0; struct termios neu, alt; fd = fileno(stdin); tcgetattr(fd, &alt); neu = alt; neu.c_lflag &= ~(ICANON|ECHO); tcsetattr(fd, TCSANOW, &neu); ch = getchar(); tcsetattr(fd, TCSANOW, &alt); return ch; } string kontoName() { string name3; cout<<"Konto Name : \n"; cin>>name3; return name3; } void makelibary(string name1) { name1 = "Acc/" + name1; mkdir(name1.c_str(), 0777); } string makeDats (string name2) { name2 = "Acc/"+name2+"/"+name2; return name2; } string Id() { string id; cout<<"Geben sie ihre Id ein : \n"; cin>>id; return id; cout<<endl; } string Passwort (char replace = '*') { cout<<"Your Passwort Please\n"; string password; char now = '\0'; while(now != 10) { now = getch(); if(now == 0 || now == 0xE0) { getch(); continue; } if(now < 32) continue; password += now; cout << replace; } return password; } #endif // REGI_H_INCLUDEDDieses Programm laeuft auf Ubuntu !
IDE Code Blocks Compiler GCC
Das mit dem Passwort klappt nicht ich bekomm den nicht dazu das wenn ich Enter drück das er schliesst !
Und wenn ich bei der while Schleife sag das wenn now 10 ist das er dann schliessen soll ,dann üperspringt er ganze while schleife !
Das Programm :
Fragt dich nahc nem namen dann erstellt er im Ordner Acc ein Ordner mit dem namen ,dannah tut er noch ne datei erstellen mit dem namen und tut id und pw reinschreiben !Vielen Dank für die Antworten bis jetzt !
-
1. Mal mit Warnungen compilert? Da sollte dir was entgegen geworfen werden.
2. Mal auf die Idee gekommen, dir den aktuellen Wert von now ausgeben zu lassen?
3. Es schließt nicht bei Enter? So wie es jetzt da steht, sollte das eigentlich durchlaufen, ohne dass du überhaupt nach dem Passwort gefragt wirst. Und tut's bei mir auch (fast gleiche Konfiguration wie dein System)
4. Du hast ja so einige schlimme Sachen in deinem Code, aber das hier ist echt niedlich:void makelibary(string name1) { name1 = "Acc/" + name1; mkdir(name1.c_str(), 0777); } string makeDats (string name2) { name2 = "Acc/"+name2+"/"+name2; return name2; }
-
Also ich möchte mein Code ja verbessern und erweitern aber komm irgendwie nicht mehr weiter hab alles versucht in Windows hab ich das geschaft

-
Hmm hat den irgend jmd. von euch Linux und hat dieses Programm probiert?
Klappts bei euch?
-
AirTrake schrieb:
Hmm hat den irgend jmd. von euch Linux und hat dieses Programm probiert?
Klappts bei euch?
Es passiert das, was ich oben beschrieben habe:
SeppJ schrieb:
Es schließt nicht bei Enter? So wie es jetzt da steht, sollte das eigentlich durchlaufen, ohne dass du überhaupt nach dem Passwort gefragt wirst. Und tut's bei mir auch (fast gleiche Konfiguration wie dein System)
Daraus schließe ich, dass du uns nicht den wahren Code zeigst oder etwas ganz merkwürdiges tust.
-
aso das gleiche wie bei mir aber wieso hmm...
-
AirTrake schrieb:
aso das gleiche wie bei mir aber wieso hmm...
Wieso sagst du dann, dass die Passworteingabe nicht mit Enter beendet? Drei Seiten Diskussion wegen schlechter Fehlerbeschreibung! Das hätte ich dir auch sofort sagen können:
string Passwort (char replace = '*') { char now = '\0'; while(now != 10) { now = getch(); } cout<<"Your Passwort Please\n"; string password; now = '\0'; while(now != 10) { now = getch(); if(now == 0 || now == 0xE0) { getch(); continue; } if(now < 32) continue; password += now; cout << replace; } return password; }Da. Fertig.
-
@SeppJ: So wie das aussieht, wird am Anfang gleich mal ein Zeichen überlesen, weil now zu Beginn auf '\0' gesetzt wurde.
-
Ähh, SeppJ,...
Was soll die Schleife am Anfang?
Verwirrt mich extrem
-
wxSkip schrieb:
@SeppJ: So wie das aussieht, wird am Anfang gleich mal ein Zeichen überlesen, weil now zu Beginn auf '\0' gesetzt wurde.
Die anderem Fehler in seinem Programm mach ich nicht noch raus. Sonst sitze ich morgen noch dran. Ich habe nur den nachgefragten Fehler korrigiert.
Hacker schrieb:
Ähh, SeppJ,...
Was soll die Schleife am Anfang?
Verwirrt mich extrem
Guck dir an, was das Programm vorher macht, dann sollte es klar sein.
-
SeppJ du bist der beste !
Ich selbst wusste ja nicht genau wo der Fehler lag aber jetzt ist es genau so wie ich es wollte Danke
Danke auch an alle andere die geholfen haben !Mit Freundlichen Grüssen !
-
Für Verbesserungsvorschlaege waer ich dankbar
