if-schleife funktioniert nicht !?
-
Hallo Leute!
Ich habe ein kleines Programm geschrieben, dass aus einer .txt datei Zeilen mit einer Cin-Eingabe vergleichen werden soll. Das Problem ist, dass zwar das Auslesen funktioniert, aber das vergleichen nicht.Die Txt datei heissd username.list und liegt im Verzeichnis users/ also(users/username.list) und hat folgenden Inhalt:
2 //Anzahl Users Gesamt
User1 //User1
User2 //User2
//usw.Das Programm soll erst die erste Zeile auslesen, dann eine for-schleife erstellen und jede einzelne Zeile mit der CIN-Eingabe vergleichen ...
Quellcode:
#include <stdio.h> #include <iostream> #include <string> #include <direct.h> #include <stdlib.h> #include <fstream> #include <time.h> #include <cstdlib> #include <strstream> using namespace std; string readline(unsigned int line, string filedir) { string read, temp; unsigned int startline = 1; ifstream readfile(filedir.c_str()); while(getline(readfile, temp) ){ if (startline++ == line) read = temp += "\n"; } return read; } int main() { unsigned int line = 1; string usernamelistdir = "users/username.list", scountusername; scountusername = readline(line, usernamelistdir); unsigned int uicountusername = atoi(scountusername.c_str()); cout<<uicountusername; string username, passwort, id, vorname, nachname, spitzname, email, picturelnk, geb, uin; cout<<"Registrieren:"<<endl; cout<<"Bitte Username eingeben:"<<endl; getline(cin, username); uicountusername = uicountusername + 1; unsigned int i; for(i=2; i<=uicountusername; i++){ if(username == readline(i, usernamelistdir)){ cout<<"Der Username wurde bereits vergeben"<<endl; cout<<"Bitte geben sie einen anderen ein:"<<endl; } } string end; cin>>end; return 0; }
Das Auslesen und die For-Schleife funktionieren tadellos, nur die Zeile
if(username == readline(i, usernamelistdir)){
funktioniert anscheinend nicht ... (Keine Compiler-Fehlermeldung !)
Ich hoffe mir kann bei diesem kleinem Problem geholfen werden ... ThX!n()()bi
-
while(getline(readfile, temp) ){ if (startline == line) { read = temp += "\n"; startline++; };
-
Funktioniert immer noch nicht!
Er bringt mir keine Fehlermeldung, wenn ich z.B. User1 eingebe... Normal sollte er da "Der Username ist bereits vergeben" anzeigen, doch er macht garnix ?!?Ich probiere jetzt schon mehrere Stunden an diesem Prob., ich finde einfach keine Lösung
-
Edit: Hab mich geirrt
-
kannst du debuggen?
so funktioniert es:if (startline++ == line) read = temp; // += "\n"; laß das weg
..zu den Namen deiner Variablen sag' ich nix