我尝试使用下面的代码打开文件。但是,它不起作用。我正在macOS Mojave 10.14上使用Xcode 10.1。
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main()
{
// "..." is meant to hide irrelevant information of the absolute file path.
string filename = "Macintosh HD/Users/.../input.txt";
ifstream inFile(filename);
cout << inFile.is_open() << endl;
}
代码显示0
。我是C ++的新手。任何人都可以告诉我我的代码有什么问题吗?谢谢!
答案 0 :(得分:1)
根据许多建议,文件路径不正确,并且代码正确。错误是我从右键单击文件的Get Info
选项复制了绝对文件路径。非常奇怪-文件路径字符串在外观上似乎正确,但事实并非如此。不知道为什么。对于谁在乎,请使用Copy (filename) as Pathname
选项进行复制。
答案 1 :(得分:0)
我发现这不太可能是您文件的正确路径。摆脱“ Macintosh HD”部分,它可能会起作用。
在您发表评论后,我这样做了
$ g++ Foo.cpp -o Foo
$ Foo
1
$ cat Foo.cpp
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main()
{
string filename = "/Users/jpl/foo.cpp";
ifstream inFile(filename);
cout << inFile.is_open() << endl;
}
文件名中确实没有...,对吗?
我还删除了整个路径(文件名=“ foo.cpp”;),它也显示了1。
您是通过IDE还是命令行来运行它?您的文件确实在您认为的位置吗?IDE是否使用您认为它真正使用的路径运行该程序?