ofstream引用使用字符串?

问题描述:

我正在与一些功能的程序:ofstream引用使用字符串?

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

的文件名是在呼叫强调说,它不能成为一个串。我应该叫什么名字的第一个功能?

+3

当函数使用'std :: ofstream'时,你试图传递'std :: string'。你期望会发生什么? – DimChtz

+0

请问如何调用函数,请帮助我吗? – deadth

+1

您还需要传递文件名。 –

让我们申报(并定义)正确的函数:

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和它需要文件的名称才能打开文件。所以,你需要将这些项目传递给你的函数。

+0

非常感谢! – deadth

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

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

+0

谢谢指点! – deadth