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;
}
访问冲突与打开或未打开的文件无关。这个错误很可能在别的地方。 – 2014-11-04 03:27:05
输入文件上的“写入位置”错误? – 2014-11-04 03:29:14
你正在写给记忆你不应该。抓住一个调试器,看看它正在发生哪一行,并查看你正在滥用什么指针以及如何操作。 – 2014-11-04 03:31:18