C ++如何检查用户输入是否与文件中的相同?

时间:2017-04-06 21:24:34

标签: c++

我想检查用户输入的值是否在我打开的文件中。

我正在做出租车预订系统。

用户输入= userTime(用户想要从出租车上取的时间)

我正在尝试检查此时间是否已经在所有驱动程序旁边(4)

在我的文件中 司机姓名,
    司机号码,
 预订时间

如果userTime与文件中所有4个驱动程序上预订的时间相同,那么系统会说没有可用的驱动程序

它是在24小时内,因此userTime将与预订时间内的文件内容完全匹配。例如1200 = 12pm

请尽快帮助谢谢p.s.我是c ++的新手

这是我的代码到目前为止,一个函数。它表示'表达式必须在第二个cab实例上有指向对象类型的指针'。以及cab.timeBooked上的两个[i]。有什么问题吗?

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


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 < 4; 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)

你必须制作一个能够相应地读取和存储所有内容的结构,然后你可以将它与用户输入进行比较

结构将看起来像这样

struct foo 
{
string name ; 
long number ; 
int time ; 
}

然后你可以这样比较

 foo e ; 
 // read from file and store in struct 
    if ( userinput == e.time ) 
      // do something 

=============================================== ========================== 我已经为1个驱动程序解决了这个问题,你可以弄清楚如何处理4

#include <iostream>
#include <fstream>
#include <conio.h>

using namespace std;

struct driver_data
{
    string name;
    size_t number;
    int time;
};

void main ()
{
    ifstream myfile ;
    myfile.open("data.txt");

    if ( ! myfile )
    {
        cout <<"error in opening file";
    }

    driver_data e1 , e2 , e3 ;

    while ( ! myfile.eof() )
    {
        char ch[100];
        myfile.getline (ch,100,'\n');
        e1.name = ch ;
        myfile.getline (ch,100,'\n');
        e1.number = atoi( ch  );
        myfile.getline(ch , 100 , '\n');
        e1.time = atoi ( ch );
    }

    int time_input_by_user ;

    cout <<"enter the time you want the cab to arrive"<<endl ;
    cin >> time_input_by_user ;

    if (time_input_by_user == e1.time )
        cout<<"car not available"<<endl;
    else 
        cout<<"car available we'll be right on time"<<endl;

    getch();
}

我有一个存储的文件(命名数据),其中包含以下数据。

john
2132151123
1200
mark
5121421231
1100
wayne
151231231
1000
harry
215612312
1500