Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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++ 函数在作为GLUT项目的一部分包含时不读取文件_C++_String_File_Project - Fatal编程技术网

C++ 函数在作为GLUT项目的一部分包含时不读取文件

C++ 函数在作为GLUT项目的一部分包含时不读取文件,c++,string,file,project,C++,String,File,Project,我创建了一个函数,在该函数中输入一个文件,它返回一个包含文件内容的字符串: 文件到字符串.cpp 我发现了问题所在。事实证明,当亮度在轨道上运行时,这是一个连接问题。为了使代码块能够识别着色器文件,调用函数时,文件名必须包含完整路径。那么您的意思是,当您在未显示的上下文中运行它时,它不会返回任何内容?无论如何,这几乎肯定是一个相对路径问题……您可以始终测试文件是否尚未打开,然后实际上没有从中读取,但可能会引发错误或其他问题。此文件是GLUT项目的一部分。 #include <fstream

我创建了一个函数,在该函数中输入一个文件,它返回一个包含文件内容的字符串:

文件到字符串.cpp


我发现了问题所在。事实证明,当亮度在轨道上运行时,这是一个连接问题。为了使代码块能够识别着色器文件,调用函数时,文件名必须包含完整路径。

那么您的意思是,当您在未显示的上下文中运行它时,它不会返回任何内容?无论如何,这几乎肯定是一个相对路径问题……您可以始终测试文件是否尚未打开,然后实际上没有从中读取,但可能会引发错误或其他问题。此文件是GLUT项目的一部分。
#include <fstream>
#include "file_to_string.h"

std::string file_to_(const char* name)
{
    std::ifstream in(name);
    std::string output((std::istreambuf_iterator<char>(in)), std::istreambuf_iterator<char>());
    return output;
}
#include <iostream>
#include <string>

std::string file_to_(const char* name);
#include <GL/glut.h>
#include "file_to_string.h"

static void CheckShaders (void)
{
   std::cout << file_to_("shader.vs");
}

int main(int argc, char** argv)
{
    CheckShaders();

    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);
    glutInitWindowSize(512, 384);
    glutInitWindowPosition(100, 100);
    glutCreateWindow("Program");

    return 0;
}
#version 330

layout (location = 0) in vec3 Position;

void main()
{
    gl_Position = vec4(0.5 * Position.x, 0.5 * Position.y, Position.z, 1.0);
}