компилятор не видит первую строку?

0

Я пытаюсь найти и сопоставить входные данные из содержимого текстового файла, содержимое файла:

Manager
Mohab
123456789
Employee
Sarah
987654321.

Он не читает 1-ю строку и поиск другого пользователя выдает условия 2 if!

Вот мой код:

    cout << "Username : ";
    cin >> usrname;
    cout << "Password : ";
    cin >> password;
    fstream myfile;
    myfile.open("Data.txt");

        if (myfile.is_open())
        {
            while ( getline (myfile,line) )
            {
                myfile >> culmn1 >> culmn2 >> culmn3;
                if(usrname==culmn1 && password==culmn2)
                {
                    cout << culmn1 << culmn2 <<culmn3;
                    //cout << "Logedin Successfuly\n" ;
                }
                else cout << "Wrong Username or Password!\n";
            }

            myfile.close();
        }
        else cout << "Unable to open the file!\n";

спасибо за помощь заранее :)

  • 0
    компилятор не видит первую строку? - какое отношение компилятор имеет к этой проблеме?
  • 0
    Примечание: никогда не храните пароли в виде простого текста в реальных приложениях. Всегда храните хэши.
Теги:

2 ответа

1
Лучший ответ

Неверный способ чтения файла. Как это

       while (myfile >> culmn1 >> culmn2 >> culmn3)
        {
            if(usrname==culmn1 && password==culmn2)

По какой-то причине вы использовали getline и >>, getline прочитал первую строку и >> прочитал вторую.

2

Эта:

getline (myfile,line)

Будет потреблять строку из потока myfile.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню