Krokodilklemme
Mitglied
Ich weiß ähnliche Fragen existieren derzeit schon, aber keine davon hat mir weitergeholfen...
Also, mein Problem: Ich habe ein Programm geschrieben, welches erst überprüfen soll, ob "Nutzerdaten" vorhanden sind (natürlich keine richtigen). Wenn diese nicht vorhanden sind wird gefragt, ob welche erstellt werden sollen und dann wird man aufgefordert Nutzername und Passwort einzugeben. Naja, so weit so gut. Bis dahin funktioniert auch alles...
Wenn aber die Datei schon vorhanden ist, soll mein Programm den Nutzernamen ausgeben, allerdings gibt er mir nur "char" aus.
Fehlermeldungen werden mir NICHT angezeigt und bis auf die Tatsache, dass das Programm nicht das ausgibt was ich vorgesehen habe funktioniert es einwandfrei.
Ich benutze Dev-C++ auf Windows und keine Grafischen Oberflächen (was man glaube ich auch erkennen kann^^)
Also, mein Problem: Ich habe ein Programm geschrieben, welches erst überprüfen soll, ob "Nutzerdaten" vorhanden sind (natürlich keine richtigen). Wenn diese nicht vorhanden sind wird gefragt, ob welche erstellt werden sollen und dann wird man aufgefordert Nutzername und Passwort einzugeben. Naja, so weit so gut. Bis dahin funktioniert auch alles...
Wenn aber die Datei schon vorhanden ist, soll mein Programm den Nutzernamen ausgeben, allerdings gibt er mir nur "char" aus.
C++:
#include <stdio.h>
#include <string.h>
#include <windows.h>
char nutzername[32];
char pweingabe1[16];
char pweingabe2[16];
char pw[16];
char ufabfrage = 0;
char moeglichezeichen [62] = "0123465798abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
FILE *user;
int main()
{
user = fopen("user.files", "rw");
if(user == NULL) {
printf("Es wurden keine Nutzerdaten gefunden.\nSollen jetzt Nutzerdaten angelegt werden? [Y/N]\n");
scanf("%c", &ufabfrage);
if(ufabfrage != 'y' && ufabfrage != 'Y') {
system("cls");
printf("Es werden keine neuen Nutzerdaten angelegt.\n");
system("PAUSE");
return 0;
} else {
system("cls");
printf("Es werden neue Nutzerdaten angelegt.\n\nBitte geben Sie Ihren Nutzernamen (Max. 32 Zeichen, Zahlen von 0-9, Zeichen von a-z bzw. A-Z): ");
scanf("%s", &nutzername);
int len = strspn(nutzername, moeglichezeichen);
if(len > 32) {
printf("Nutzername enthält mehr als 32 Zeichen.\nBitte starte das Programm neu um dich erneut anzumelden.\n");
Beep(3000, 100);
sleep(3);
Beep(3000, 100);
system("PAUSE");
return 0;
}
printf("\nBitte geben Sie Ihr Passwort ein (Max. 32 Zeichen, Zahlen von 0-9, Zeichen von a-z bzw. A-Z): ");
scanf("%s", &pweingabe1);
printf("\nWiederholen Sie Ihr Passwort: ");
scanf("%s", &pweingabe2);
int len1 = strspn(pweingabe1, moeglichezeichen);
if(strcmp(pweingabe1, pweingabe2) != 0 || len1 > 32) {
printf("Die Passwörter stimmen nicht überein oder das eingegebene Passwort ist zu lang.\n");
Beep(3000, 100);
sleep(3);
Beep(3000, 100);
system("PAUSE");
return 0;
} else {
system("cls");
printf("Nutzerdaten wurden erfolgreich angelegt!\n\nNutzername: %s\nPasswort: %s\n\n", nutzername, pweingabe1);
user = fopen("user.files", "a");
fprintf(user, "char nutzername [%d] = \"%s\" ; char pw[%d] = \"%s\" ;", len, nutzername, len1, pweingabe1);
fclose(user);
system("PAUSE");
}
}
} else {
user = fopen("user.files", "r");
fscanf(user, "%s", &nutzername);
fclose(user);
printf("Es wurden Nutzerdaten gefunden!\nNutzername: %s\n", nutzername);
system("PAUSE");
return 0;
}
}
Fehlermeldungen werden mir NICHT angezeigt und bis auf die Tatsache, dass das Programm nicht das ausgibt was ich vorgesehen habe funktioniert es einwandfrei.
Ich benutze Dev-C++ auf Windows und keine Grafischen Oberflächen (was man glaube ich auch erkennen kann^^)