2014-11-04 47 views
1

我在尝试加载文本文件时遇到访问冲突写入位置错误。在调试的时候,我注意到我的“is_open()”和“good()”检查了这两个通过,因为我达到了“while(std :: getline(myfile,line))。这怎么可能?甚至是笨重的,功能完美地工作在自己的项目,但由于某种原因,我在这里得到了访问冲突错误。无法读取文本文件还没有通过is_open和良好的检查?

//头

static bool LoadObj(std::string file, std::vector<GLfloat> &out_vertices, std::vector<GLfloat> &out_normals); 

// CPP

bool Resources::LoadObj(std::string file, std::vector<GLfloat> &out_vertices, std::vector<GLfloat> &out_normals) 
{ 
std::string line; 
std::ifstream myfile(file); 

if (myfile.is_open()) 
{ 
    if (myfile.good()) 
    { 
     while (std::getline(myfile, line)) 
     { 
      if (!strncmp(line.c_str(), "v", 1)) 
      { 
       std::string dummy; 
       std::stringstream ss(line); 
       ss >> dummy; 

       while (ss >> line) 
       { 
        out_vertices.push_back(std::stof(line)); 
        std::cout << line; 
       } 
      } 
     } 
    } 
} 

return false; 
} 
+0

访问冲突与打开或未打开的文件无关。这个错误很可能在别的地方。 – 2014-11-04 03:27:05

+0

输入文件上的“写入位置”错误? – 2014-11-04 03:29:14

+1

你正在写给记忆你不应该。抓住一个调试器,看看它正在发生哪一行,并查看你正在滥用什么指针以及如何操作。 – 2014-11-04 03:31:18

回答

相关问题