无法从 C++ 读取文件Mac 上的程序

发布于 2024-11-29 16:26:59 字数 487 浏览 1 评论 0原文

首先,这是我的代码的一部分:

....
string input;
getline(cin, input);

ifstream openFile;
openFile.open(input.c_str(), ios::in);

if(openFile.is_open()){
    cout << "File opened" << endl;
}  
else {
    cout << "Cant open the file " << endl;
}

结果总是“无法打开文件”。我非常非常确定这些文件存在。我在同一目录中有data1.txt,data2.txt ... data10.txt(我使用XCode添加新的空文件,在里面添加数据并保存)。

我做了另一个测试,我创建一个新目录,复制粘贴 cpp 和数据文件。我在终端中运行,它可以工作,它可以读取数据文件。为什么 xcode 无法读取我的数据文件?有什么想法吗?

First of all, this is part of my code:

....
string input;
getline(cin, input);

ifstream openFile;
openFile.open(input.c_str(), ios::in);

if(openFile.is_open()){
    cout << "File opened" << endl;
}  
else {
    cout << "Cant open the file " << endl;
}

The result always "Cant open the file". I am very, very sure that the files are exists. I have data1.txt, data2.txt ... data10.txt in the same directory (I used XCode to add new empty file, add the data inside and save it).

I do another test, I create a new directory, copy paste the cpp and data files. I run in terminal, and it works, it can read the data file. Why does xcode cant read my data files? Any idea?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

木格 2024-12-06 16:26:59

您需要提供文件的完整路径。 Xcode 将从构建目录运行应用程序,该目录不是代码所在的目录。

如果这些文件是作为构建 OSX 或 iOS 应用程序的一部分进行复制的,您应该查看 捆绑结构 来查找目录。

You need to give the full path to the files. Xcode will run the application from the build directory which is not where the code is.

If the files are copied as part of building an OSX or iOS application you should look at the bundle structure to find the directory.

小女人ら 2024-12-06 16:26:59

您可以告诉 Xcode 从包含数据文件的目录运行可执行文件。

打开目标可执行文件的信息对话框,并将“将工作目录设置为:”的值更改为“项目目录”或“自定义目录”

You can tell Xcode to run the executable from the directory containing the data files.

Bring up the info dialog for the target executable, and change the value for 'Set the working directory to:' to either the Project directory or a custom directory'

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文