这个文件的路径是“/ home / Data / Homework 1 / file.txt”
std::string x = "/home/Data/Homework 1/file.txt";
std::ifstream XX(x.c_str())
失败。
答案 0 :(得分:0)
std::ifstream
如何找到给定路径的文件是特定于平台的,但在类Unix系统上,字符串应该简单地传递给open
。
您可以尝试调试直接调用open
(来自<fcntl.h>
),和/或在errno
构造函数后检查<cerrno>
(来自ifstream
)回报。
在任何情况下,问题几乎肯定是权限不足或拼写错误。
答案 1 :(得分:0)
您提供的文件路径可能不正确。请仔细检查。
在典型的unix系统中,用户目录是基于帐户的。如果您的帐户名称是Foo
,那么您的个人目录应该位于/home/Foo/Data//Homework 1/file.txt
而不是/home/Data//Homework 1/file.txt
。但这不是强制性的,所以你仍然可以将你的文件放在主目录下,这显然是一种不好的做法。
请检查实际路径,也可以检查您是否有权阅读该文件。