【发布时间】:2013-02-20 00:58:19
【问题描述】:
我已将所有打算在我的应用程序中用作输入流的文件保存在一个名为“res”的文件夹中。我试图通过在应用程序中构建字符串然后使用类似这样的方式打开它们来将这些文件用作输入流:
....
ifstream inputFile;
....
char fileName[30];
strcpy(fileName,"res/")
switch(num){
case 1:
strcat(fileName,"file1");
case 2:
strcat(fileName,"file2");
....
}
inputFile.open(fileName);
....
但是文件没有打开,我不知道为什么; inputFile.is_open() 方法返回 false。所以我有两个问题:
如何引用子目录中的文件以及父目录中其他文件夹中的文件?
有没有比我在上面尝试做的事情更好的做法?我很确定有!
我在 Ubuntu 12.04 上使用 eclipse CDT 和 g++-4.6 编译器,如果这有所不同的话。
【问题讨论】:
-
你的案子失败了!
-
尝试使用绝对路径,只是为了测试。如果绝对路径一切正常,那么您就知道您的相对路径是错误的(路径必须相对于 exe)
-
谢谢大家,使用绝对路径有效。另外,我发现了这个帖子:stackoverflow.com/questions/7276164/…,这很有帮助。不知道顶层目录是eclipse中的工作目录
标签: c++ input ifstream subdirectory