C ++如何根据.txt文件检查用户输入?

时间:2017-04-10 21:31:02

标签: c++

我想检查用户是否输入了与drivers.txt文件中相同的数字。该文件如下所示:

Angela  07483774637 1000    1100
Mark    07362543432 1100    
Dave    07869878907 1200    1100

为所有驱动程序预订的姓名,号码和时间。检查用户是否输入了与最后2列相同的时间。如果所有司机都预定了这个时间(例如,如果所有司机的名字旁边都有1100名),那么说当时没有出租车,如果时间是免费的,那么就说有出租车可用。

应该知道,一旦找到与用户相同号码的一个实例,就不会说当时有出租车可用(例如,先检查第1列,然后是否有该号码,则不要继续(即马克有1100,但是下一栏是空白的,所以程序可能会认为Mark可用于1100))。稍后我将实现写入文件功能,以便用户在预订时写入文件,而不是手动编写文件。

userTime2 =用户输入

到目前为止的相关代码:

struct Driver
{
    string firstName;
    double number;
    int timeBooked;
};

const int MAXDRIVERS = 3;
struct Driver cab;

void searchDrivers()
    {
        cout << "\nSearching for drivers..." << endl;
        ifstream inFile;
        inFile.open("drivers.txt");
        if (!inFile)
        {
            cout << "error reading file";
        }
        else
        {
            for (int i = 0; i < MAXDRIVERS; i++)
            {
                inFile >> cab.firstName[i] >> cab.number[i] >> cab.timeBooked[i];
                if (userTime2 == cab.timeBooked[i])
                {
                    cout << "unavailable" << endl;
                }
                else
                {
                    cout << "car available" << endl;
                    driverIndex = i;
                    confirmBooking();
                }
            }
        }

    }

我需要添加/更改此内容才能使其正常工作?谢谢。

1 个答案:

答案 0 :(得分:0)

它分配&#34; timeBooked&#34;值为&#39; firstName&#39;因为你正在使用令牌从文件中读取,这就是当它读取文件Angela被分配给firstName [0],0748 ...到数字[0],1000到timeBooked [0]和最后1100时发生的事情。到firstName [1]。我希望这有帮助。