Estoy haciendo un login de usuario con archivos y tengo una gran duda, cuando uso mi while(!read.eof)
supuestamente debería leer cada línea de mi txt y continuar con mi orden, pero solo me está leyendo la primera línea, no me reconoce a las demás líneas. ¿Por qué puede ser?
Éste es mi código:
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
struct escribir{
string usuario;
string pass;
}escribire;
bool isloggedin(){
string un,pw;
cout<<"Ingrese su ID: ";
cin>>escribire.usuario;
cout<<"Ingrese su password: ";
cin>>escribire.pass;
ifstream read;
read.open("texto.txt",ios::in);
if(read.is_open()){
while(!read.eof()){
read>>un>>pw;
if(un==escribire.usuario && pw==escribire.pass){
return true;
} else{
return false;
}
}
read.close();
}
}
int main(){
int choice;
string un,pw;
cout<<"1.registrar"<<endl;
cout<<"2.loguearse "<<endl;
cin>>choice;
switch(choice){
case 1:
{
ofstream file;
string nombret;
cout<<"Ingrese el ID : ";
cin>>escribire.usuario;
cout<<"Ingrese el password: l";
cin>> escribire.pass;
file.open("texto.txt",ios::app);
file<<escribire.usuario <<" "<<escribire.pass<<endl;
file.close();
main();
}
case 2:
{
bool status=isloggedin();
if(!status){
cout<<"Error en su contraseña y/o user "<<endl;
system("Pause");
return 0;
}else{
cout<<"Usted ingreso con exito "<<endl;
system("PAUSE");
return 0;
}
}
}
}