Как мог бы продолжать читать txt, не используя .eof в c ++?

Я вхожу в систему пользователя с файлами и у меня есть большое сомнение, когда я использую я while(!read.eof) предположительно он был бы должен читать каждую линию моего txt и продолжать с моей командой, но только он читает мне первую линию, не допускает меня в остальные линии. Почему он может быть?

Это мой код:

#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;
                }
            }
    }
}
5
задан 19.06.2017, 07:25
0 ответов