如何解决在我的 clr 项目中将数据写入特定文件的问题?

How can i solve an issue in writing data in specific file in my clr project?

我正在尝试将一些数据添加到我项目中的特定文件中。我在下面的函数中这样做。

void Files::write_employee(employee employeeObject)
{
    fstream infile;
    infile.open("employeeFile.txt",ios::in|ios::out|ios::app);
    string record;
    char delimiter='@';

    record=employeeObject.get_id()+delimiter;
    record+=employeeObject.get_name()+delimiter;
    record+=employeeObject.get_password()+delimiter;
    record+=employeeObject.get_age()+delimiter;
    record+=employeeObject.get_gender()+delimiter;
    record+=employeeObject.get_MaritalStatus()+delimiter;
    record+=employeeObject.get_ministryName()+delimiter;
    record+=employeeObject.get_departmentName()+delimiter;
    record+=employeeObject.get_salary()+delimiter;
    record+=employeeObject.get_photoPath()+delimiter;
    record+=employeeObject.get_photoFileName()+delimiter;
    if (infile.fail())exit(1);
    else {infile<<record;
    infile.close();}
}

此功能说明如何通过保存输入的数据将数据添加到我的文件 在对象中并将此值保存在字符串记录中并将其推送到文件。

最大的问题是我正在尝试添加数据的文件尚未创建。 我也不知道为什么。

提前致谢。

根据 cplusplus.com 中的 std::fstream::open 示例,您的代码是正确的,必须创建该文件。首先尝试将绝对文件路径指定到您具有写入权限的位置。如果它不起作用,请使用以下代码行打印错误消息:

cerr << "Error: " << strerror(errno);

您在输出到文件时使用 infile。虽然这不会影响程序代码,但它没有任何意义并且会破坏程序的可读性。请改用 outfile

请记住,对于标准 I/O,它就像 cout <<cin >>

此外,当您的目的只是输出到文件时,尽量不要使用 ios::in,反之亦然。