运算符从文件读取到类>>重载时出错
Error overloading >> Operator reading from file into class
我目前正在编写一个类的程序,该程序要求我重载流提取操作符>>,以便将数据从文件直接提取到类中。我得到一个:
错误C2678: binary '>>':找不到左操作数为'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
stock .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文件中读取是很困难的。我可以提供任何额外的信息。非常感谢任何帮助。谢谢。
您的输入操作符签名
std::ifstream& operator>> (std::ifstream &in, const stockType &myStock);
// ^^^^^
没有意义。要从流输入任何东西到myStock
参数,它当然必须是非const
。此外,您通常不想重载std::istream
的特定实现,因此您的签名应该是这样的:
std::istream& operator>> (std::istream &in, stockType &myStock);
相关文章:
- 访问者访问变体并返回不同类型时出错
- 在Linux for Windows上编译C++代码时出错
- 读取文件的最后一行并输入到链接列表时出错
- 重载操作程序时出错>>用于类中的字符串 memebr
- 调用专用模板时出错"no matching function for call to [...]"
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- LINK 尝试使用 OpenSSL evp aes 256 c++ 时出错
- 在Google Kick start中提交时出错
- 在c++中访问int到类对象的映射时出错
- 分段错误当我试图运行程序时出错
- 使用dynamic_cast和构造函数时出错
- CHECK(调用)函数在Google Colab中出错
- 用pybind11包装C++抽象类时出错
- 为x86而非x64编译时出错
- 从R调用C++函数并对其进行集成时出错
- EASTL矢量<向量<int>>连续的
- 这个函数哪里出错了
- C++ 创建包含链表和字符串的对象的链接列表时出错
- 为重写std::exception的库生成swig接口时出错
- 导入/导出变量时出错