Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 左边的。必须具有类/结构/联合_C++_File_Undefined_Ifstream_Istream - Fatal编程技术网

C++ 左边的。必须具有类/结构/联合

C++ 左边的。必须具有类/结构/联合,c++,file,undefined,ifstream,istream,C++,File,Undefined,Ifstream,Istream,我正在尝试将着色器文件加载器添加到我的程序中。我正在从“加载着色器”部分下复制代码。下面我有一个更简化的非工作版本 我已检查是否已包含网站示例中包含的所有ifstream头文件,但出现以下错误: error C2027: use of undefined type 'std::basic_ifstream<_Elem,_Traits>' error C2228: left of '.good' must have class/struct/union 错误C2027:使用未定义的类

我正在尝试将着色器文件加载器添加到我的程序中。我正在从“加载着色器”部分下复制代码。下面我有一个更简化的非工作版本

我已检查是否已包含网站示例中包含的所有ifstream头文件,但出现以下错误:

error C2027: use of undefined type 'std::basic_ifstream<_Elem,_Traits>'
error C2228: left of '.good' must have class/struct/union
错误C2027:使用未定义的类型“std::basic\u ifstream”
错误C2228:“.good”的左侧必须具有类/结构/联合
我的头文件如下所示

#pragma once
#include <iostream>     // std::cout, std::ios
#include <sstream>      // std::stringstream
#include <istream>

using namespace std;

class ShaderHandler
{
public:
    ShaderHandler(void);
    virtual ~ShaderHandler(void);
    unsigned long getFileLength(ifstream& sfile);
};
#pragma一次
#包括//标准::cout,标准::ios
#include//std::stringstream
#包括
使用名称空间std;
类ShaderHandler
{
公众:
ShaderHandler(无效);
虚拟~ShaderHandler(void);
无符号长getFileLength(ifstream&sfile);
};
来源如下:

#include "StdAfx.h"
#include "ShaderHandler.h"
#include <Windows.h>
#include <GL/gl.h>

ShaderHandler::ShaderHandler(void)
{
}
ShaderHandler::~ShaderHandler(void)
{
}

unsigned long ShaderHandler::getFileLength(ifstream& sfile){
    if( !( sfile.good() ) ){
        return 0;
    }

    return 0;
}
#包括“StdAfx.h”
#包括“ShaderHandler.h”
#包括
#包括
ShaderHandler::ShaderHandler(空)
{
}
ShaderHandler::~ShaderHandler(无效)
{
}
无符号长ShaderHandler::getFileLength(ifstream&sfile){
如果(!(sfile.good()){
返回0;
}
返回0;
}
错误发生在源文件“sfile.good()”中。 我不确定第一个错误,因为我不明白如何使用未定义的类型。我认为应该使用ifstream。我没有看到可以包含在“基本流”中的头文件。根据,它应该在istream的标题中,我已经包括了它


对于第二个错误,我研究了一些类似的问题,并尝试使用“->”。我发现另一个常见的问题是变量可能意外地被声明为函数,但我认为也不是这样。如何修复这些错误,以及导致这些错误的原因是什么?

std::ifstream
位于
fstream
标题中,您尚未包括该标题。将
#include
添加到头文件或源文件中。

std::ifstream
位于
fstream
头文件中,但尚未包含该头文件。添加
#包括
到头文件或源文件。

谢谢!我去掉了其他的include并添加了fstream。它现在就可以建立了!你怎么知道它在流媒体上?它甚至没有在会议上提到,而且完全不同。是多个版本还是什么?@AABoucher这是一个众所周知的不可靠的网站,尽管谷歌排名很高。谢谢!我去掉了其他的include并添加了fstream。它现在就可以建立了!你怎么知道它在流媒体上?它甚至没有在会议上提到,而且完全不同。是多个版本还是什么?@AABoucher这是一个众所周知的不可靠的网站,尽管谷歌排名很高。考虑