Sublime Text,当我在 Mac 上使用 fstream 写入文件时,我的文件存储在我的主文件夹中

Sublime Text, my file is stored in my home folder when I write a file using fstream on Mac

我在 mac 上使用 Sublime Text 3 编写 C++。我写了一些代码来获取我的姓名和年龄的 cin 值,并将它们写入文件 file.txt.

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

int main()
{
    string name;
    int age;
    ofstream file("file.txt", ios::out);
    cout<<"enter name: "<<endl;
    cin>>name;
    cout<<"enter age: "<<endl;
    cin>>age;
    file<<name<<" "<<age<<endl;
    return 0;
}

问题是 "file.txt" 文件存储在我的主文件夹中,而不是我当前的工作目录中。 我怎样才能将它存储在我当前的工作目录中? check this

这个问题太奇怪了,我不是 100% 完全确定 macOS,但这适用于 Linux 和 Windows。

#include <iostream>
#include <fstream>

int main(void) {
    std::ofstream file("./file.txt", std::ios::out); // --- here add './' prefix
    std::string name;
    int age;

    std::cout << "Enter your name: ";
    std::getline(std::cin, name); // use std::getline() for whitespaces

    std::cout << "Your age: ";
    std::cin >> age;

    file << name << ' ' << age << '\n';

    return 0;
}

只要在文件名前加上./来明确定义文件的输出目录必须与程序实际所在的目录相同运行ning.

另一个解决方案

如果上述解决方案失败,请再次尝试 g++ -o your_program your_program.cpp 和 运行 该程序。如果它像您预期的那样成功运行,则说明您的 Sublime Text 设置有问题。