ofstream 引用使用字符串?

ofstream reference using string?

我正在制作一个具有多种功能的程序:

int totalDays(ofstream &outputFile, int noEmployee)
{
string fileName = "employeeAbsences.txt";

outputFile.open(fileName);

但是,我不知道怎么称呼它:

int main()
{

int employeesNumber = employees();
string fileName = "employeeAbsences.txt";

employees();

totalDays(fileName, employeesNumber);

文件名在调用中带有下划线,说明它不能是字符串。我应该用什么名称调用第一个函数?

您的 totalDays() 函数的第一个参数是对 ofstream 对象的引用,但您传递的是一个字符串(文件名)。这不会像您报告的那样编译。

在 main() 中,您应该实例化一个 ofstream 对象并将该对象作为第一个参数传递给您的 totalDays() 函数。

让我们正确地声明(和定义)函数:

void totalDays(std::ofstream& outputFile,
               int employee_quantity,
               const std::string& filename)
{
  outputFile.open(filename.c_str());
  //...
}

现在调用它:

std::ofstream outputFile;
totalDays(outputFile, employeesNumber, fileName);

您的 totalDays 函数需要输出文件(流)传回 main 并且它需要文件名才能打开文件。因此,您需要将这些项目传递给您的函数。