我遇到了ifstream打开函数的问题。我在NetBeans下创建了一个Linux应用程序。 我的代码如下:
ifstream file;
file.open(path);
file.is_open()
.
.
.
问题出在路径上。当我使用~/Desktop/file.txt并运行应用程序时,文件无法打开。但是当我调试该应用程序时,一切正常。 对于这个问题有什么提示吗? 谢谢。
我遇到了ifstream打开函数的问题。我在NetBeans下创建了一个Linux应用程序。 我的代码如下:
ifstream file;
file.open(path);
file.is_open()
.
.
.
路径名 ~/Desktop/file.txt 不会匹配任何文件,除非它已经扩展了波浪号字符(~),这通常是在将其传递给程序之前由 shell 完成的。 如果您直接调用它,则需要使用完整的路径名。
/home/user/Desktop/file.txt
./Desktop/file.txt
~
是在环境变量HOME
中,通过getenv("HOME")
获得。因此,如果您获得的文件名以~/
开头,则只需将波浪号替换为HOME
的内容,以获取绝对路径。但请注意,您通常不应该对从命令行获得的文件名执行此操作,因为它们应该由 shell 展开波浪号。 - celtschk