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

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

本文关键字:文件 问题 数据 解决 项目 clr 何解决      更新时间:2023-10-16

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

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();}
}

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

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

提前谢谢。

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

请记住,它就像标准 I/O 的cout <<cin >>一样。

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

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

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