Ich versuche, ein einfaches Login-System, basierend auf txt
zu machen. Die file
sieht aus wieC Programmierung Login-System
1 1
2 2
3 3
Aber meine Codeprüfung nur letzte Zeile txt
, nicht jede Zeile.
int write_login_and_pass() {
char login[30], pass[30];
int select3;
printf("\n|---------Login:");
scanf("%s", login);
printf("|---------Password:");
scanf("%s", pass);
sign_In(login, pass);
_getch();
system("PAUSE");
return 0;
}
int sign_In(char login[30], char pass[30]) {
FILE *file;
char user2[30], pass2[30], fc;
file = fopen("Customers.txt", "r");
char arra[128][128];
if (file != NULL) {
char line[128];
do {
fscanf(file, "%29s %29s", user2, pass2);
}while (fgets(line, sizeof line, file) != NULL);
if ((strcmp(login, user2) == 0) && (strcmp(pass, pass2) == 0)) {
printf("\n>>>User and password correct!<<<\n");
fc = main_menu();
}
else {
printf("\n>>>User or password incorrect!<<<\n");
system("PAUSE");
fc = sign_In(login, pass);
}
}
else printf("File was not founded");
fclose(file);
system("PAUSE");
return 0;
}
Lesen Sie sorgfältig die Dokumentation jeder aufgerufenen Funktion (wie [fscanf] (http://en.cppreference.com/w/c/io/fscanf), whos Der Rückgabewert sollte überprüft werden). Kompilieren Sie alle Warnungen und Debug-Informationen (z. B. 'gcc -Wall -g 'bei Verwendung von [GCC] (http://gcc.gnu.org/) ...). Verbessere deinen Code, um keine Warnungen zu erhalten. ** Verwenden Sie den Debugger ** 'gdb'. –
Sehen Sie sich Ihre Schleife beim Lesen der Datei genauer an. Und wenn Sie es nicht direkt sehen können, nehmen Sie sich bitte etwas Zeit [lesen Sie, wie Sie kleine Programme debuggen können] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/) und lernen, wie man einen Debugger benutzt, um Code Zeile für Zeile durchzugehen. –
Ihre * fix-my-code * -Frage ist nicht am Thema. –