所以我编程了这个,我有一个main.cpp,我在一个名为getData的类中调用一个方法,基本上我试图做的是让用户输入一个出发地和目的地,然后输出价格和时间(所有数据都存储在文本文件fly.txt)
中看起来并不复杂,但我一直都会遇到错误。我是否在头文件中正确声明了所有内容,并且我是否在主体中正确调用了方法?
提前致谢!
getData.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
getData.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);
}
}
的main.cpp
#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");
}
答案 0 :(得分:1)
在main()中:
getData构造函数需要两个参数:getData test(String dep,String des);
在getData
中
的getData:
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(...)
我没有耐心找到所有错误......
答案 1 :(得分:1)
您应该仔细验证您的变量。 “String”变量类型与“string”不同(请注意大小写)。 C / C ++及其所有派生都区分大小写。
您的代码:
// Header file definition
void getFlights(String dep, String des);
// Implementation file
getData::getFlights(string dep, string des){
// ...
}