编译器看不到第一行?

时间:2013-11-22 16:54:04

标签: c++

我正在尝试搜索和匹配来自文本文件内容的输入,文件内容为:

Manager
Mohab
123456789
Employee
Sarah
987654321.

它没有读取第1行,搜索另一个用户输出2条件!

这是我的代码:

    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";

提前感谢您的帮助:)

2 个答案:

答案 0 :(得分:2)

这:

getline (myfile,line)

将消耗流myfile中的一行。

答案 1 :(得分:1)

您阅读文件的方式不正确。喜欢这个

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

出于某种原因,您使用了getline &gt;&gt;,getline读取第一行和&gt;&gt;读第二个。