我目前正在为类编写一个程序,该程序要求我重载流提取运算符,>>,将文件中的数据直接放入类。我得到一个:
错误C2678:二进制'>>':找不到采用类型为“std::ifstream”的左侧操作数的运算符(或者没有可接受的转换)
以下是错误影响的特定代码。
int main()
#include <iostream>
#include <fstream>
#include <iomanip>
#include "stockType.h"
#include "stockListType.h"
using namespace std;
stockType myStock;
stockListType stockList;
ifstream infile;
infile.open("StockData.txt");
infile >> myStock;
stockType.h头文件
#ifndef STOCKTYPE_H
#define STOCKTYPE_H
#include <string>
#include <fstream>
#include <iostream>
class stockType
{
public:
stockType();
void printStock();
void calcPercent();
char Symbol[3];
float openingPrice;
float closingPrice;
float todayHigh;
float todayLow;
float prevClose;
int volume;
float percent;
friend std::ifstream &operator >> (std::ifstream &in, const stockType &myStock);
};
#endif
stockType.cpp资源文件
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
#include "stockType.h"
std::ifstream& operator>> (std::ifstream &in, const stockType &myStock)
{
in >> myStock.Symbol;
in >> myStock.openingPrice;
in >> myStock.closingPrice;
in >> myStock.todayHigh;
in >> myStock.todayLow;
in >> myStock.prevClose;
in >> myStock.volume;
return in;
}
我所做的大部分搜索是人们在使用ostream进行搜索时遇到问题,并且在程序使用过程中获取他们的数据。尝试使用ifstream纠正错误并直接从txt文件读取是很困难的。我可以提供任何需要的额外信息。非常感谢任何帮助。谢谢