5

这应该在我的项目目录中创建一个名为“tuna.txt”的文件。当我运行它时,它编译成功,但是没有创建文件。我在使用 xcode 的 Mac 上。我已经在我的计算机上搜索了可能已创建它的其他地方,但似乎根本没有创建该文件。关于为什么它不起作用的任何想法?

#include <iostream>
#include <fstream>
using namespace std;
int main(void){
    ofstream file;
    file.open("tuna.txt");

    file << "I love tuna and tuna loves me!\n";
    file.close();
    return 0;
}
4

3 回答 3

13

我向您保证,除非错误(您没有检查),否则会创建一个文件。从 IDE 运行时,Xcode 倾向于使用最终的 build-dir 作为当前工作目录。您可以通过编辑活动方案来更改此设置。

  1. 单击主工具栏上 STOP 按钮右侧的项目框
  2. 选择编辑方案
  3. 在左侧窗格列表中选择“运行”子方案。
  4. 选择选项选项卡,
  5. 选中“使用自定义工作目录”复选框
  6. 将工作目录设置为您知道的某个位置(例如您的项目根文件夹)。

注意:如果您愿意,您也可以在此处设置任何命令行参数(位于“参数”选项卡上,而不是“选项”选项卡上)。

于 2012-12-31T07:42:59.667 回答
2

Products文件夹中(在Xcode IDE 左侧Navigator选项卡的Project Navigator中),您将找到可执行文件。单击可执行文件。

如果尚未显示,请确保显示了 Xcode IDE 右侧的Utilities选项卡,并选择了显示文件检查器。

检查器中,您将看到显示可执行文件路径的完整路径,并且在其末尾会有一个箭头。单击此箭头将打开Finder窗口到该位置,在这里您还应该看到所有文本文件和从程序中创建的其他文件。

PS。使用搜索时找不到 tuna.txt 文件的原因是它与可执行文件一起位于隐藏文件夹中。

于 2014-08-29T01:23:31.700 回答
1

首先,您必须检查文件是否已opened/created存在。然后你应该搜索文件。很可能该文件尚未创建。这是代码:

#include <iostream>
#include <fstream>
using namespace std;

int main(void){

ofstream file;
file.open("tuna.txt");
if(file.is_open())
{
   file << "I love tuna and tuna loves me!\n";
    file.close();
}
else
   cout<< "No file has been created!\n";

  return 0;
}

由于您没有给出打开函数的绝对路径。请参阅代码文件所在的文件夹。很可能该文件将在那里。

于 2012-12-31T07:46:46.170 回答