-1

所以我编写了这个,我有一个 main.cpp,我在一个名为 getData 的类中调用一个方法,基本上我想做的是让用户输入出发地和目的地,然后输出价格和时间(所有数据存储在文本文件 fly.txt 中)

它似乎并不复杂,但我不断收到错误。我是否在头文件中正确声明了所有内容,是否在主体中正确调用了方法?

提前致谢!

获取数据.h

#ifndef GETDATA_H
    #define GETDATA_H
    #pragma once

class getData
{
public:
getData(String dep,String des)

    ifstream data("fly.txt");
String departure,destination,time;
int price;
    vector<String> flights;
    vector<String> times;
    vector<int> prices;

void getFlights(String dep, String des);
void getTime(String dep, String des);
void getPrice(String dep, String des);
};

#endif

获取数据.cpp

#include "getData.h"
#include "std_lib_facilities.h"


getData::getFlights(string dep, string des){
while(data >> departure >> destination >> time >> price){
    if (dep==departure && des=destination)
flights.push_back(departure);
}
}

getData::getPrice(string dep, string des){
while(data >> departure >> destination >> time >> price){
    if (dep==departure && des=destination)
prices.push_back(price);
}

}

getData::getTime(string dep, string des){
while(data >> departure >> destination >> time >> price){
    if (dep==departure && des=destination)
times.push_back(time);
}

}

主文件

#include "std_lib_facilities.h"
#include "getData.h"

int main(){
getData test;

cout<<"Where are you flying from?"<<endl;
string ideparture;
cin>>ideparture;
cout<<"Where are you flying to?"<<endl;
string idestination;
cin>>idestination;

getData.getFlights(ideparture, idestination);


keep_window_open("q");
}
4

2 回答 2

1

在 main() 中:

getData 构造函数需要两个参数: getData test(String dep, String des);

在 getData

  • 定义类变量
  • #pragma once 与 #ifndef GETDATA_H [...]

获取数据:

class getData {
  private:
    std::ifstream data;
    std::string departure,destination,time;
    int price;
    std::vector<std::string> flights;
    std::vector<std::string> times;
    std::vector<int> prices;
  ...
}

...

(dep==departure && des==destination)

...

void getData::fn(...)

我没有耐心找到所有的错误......

于 2013-05-19T22:25:30.300 回答
1

您应该仔细验证您的变量。“字符串”变量类型不同于“字符串”(注意大写)。C/C++ 及其所有派生词都区分大小写。

你的代码:

// Header file definition
void getFlights(String dep, String des);

// Implementation file
getData::getFlights(string dep, string des){
    // ...
}
于 2013-05-19T22:30:44.720 回答