我想在C++程序中加载一个简单的数据文件。由于奇怪的原因,它不起作用:
假设该文件位于同一个目录: file,我在上试用了该文件。
片段:
void World::loadMap(string inFileName) {
ifstream file(inFileName.c_str(), ios::in);
if (file) {
}
else
{
cout<<"Error when loading the file \n";
exit(-1);
}
}我像这样调用loadMap方法:
World::Instance()->loadMap("Map.dat");(世界是一个单身阶层)。
我怎样才能找到准确的错误,通过尝试-捕捉或其他任何东西?
发布于 2010-01-03 17:59:46
问题是工作目录。
当为文件指定相对路径时,它使用工作目录(可能与应用程序存储在文件系统上的目录不同)。
因此,
。
发布于 2010-01-03 13:41:44
默认情况下,未能打开(或任何其他I/O操作)的文件不会引发异常。您可以改变这种行为,但是标准仍然没有提供从异常中提取失败的确切原因的方法。
发布于 2010-01-03 13:42:18
Linux文件名区分大小写.
您的文件实际名为map.dat吗?
另外,您是否尝试将该文件放在当前目录中?
https://stackoverflow.com/questions/1994970
复制相似问题