【发布时间】:2013-04-12 01:28:18
【问题描述】:
在这个函数中,我试图打开一个文件,其中包含一组我想分配给我的矩阵数组的字符,但是每当我运行这个程序时,控制台都会显示一个错误,指出文件未打开。另一个问题,如果我将该文件添加到我的资源文件夹中,我如何指定访问该文件而不是我在硬盘驱动器根目录中的文件?
ifstream readSecondMap("C:\\map_2.txt", ifstream::in);
void Stage::populateStage(ifstream &myStage, char (&myArray)[mapXcor][mapYcor]) {
if(myStage.is_open()){
for(int a = 0; a < mapXcor+1; ++a){
for(int b = 0; b < mapYcor+1; ++b){
myArray[a][b] = (char) myStage.get();
}
}
myStage.close();
} else {
std::cout << "Error: Unable to open File" <<std::endl;
}
}
【问题讨论】:
-
你能提供一个最小的、完整的和可编译的测试用例来演示这个问题吗?
-
如果这是 windows vista 或更高版本,则可能是用户访问控制问题。
-
确保C:\\map_2.txt存在并且你的程序可以访问。第二个问题可以通过使用相对路径来解决:例如:../resource/map_2.txt
-
您是否偶然在调试模式下使用了 Visual Studio?
-
你是否有正确的权限写入目录。