基本上,我所拥有的是2个带有输入/输出文本文件名称的常量字符串变量和2个将这些字符串作为参数的函数。一个函数用于读取第一个文件,而另一个函数用于写入第二个文件。
常数:
const string duom = "U2.txt";
const string rez = "rez.txt";
其中一项功能:
void fileWrite(const string fn,int kieknuvaziavo,int kiekpristate,string paskutinis)
{
ofstream fout(fn.c_str());
fout << kiekpristate << " " << kieknuvaziavo << " " << paskutinis;
fout.close();
}
如果我要从此行.c_str()
删除ofstream fout(fn.c_str());
,我会收到此错误:
no matching function for call to 'std::basic_ofstream<char>::basic_ofstream(const string&)'|
这是主要功能的一部分:
int main()
{
int kiekpristate = 0;
int kieknuvaziavo = 0;
string paskutinis;
fileWrite(rez,kieknuvaziavo,kiekpristate,paskutinis);
return 0;
}
现在,如果我要采用另一条路线,而不是使用文本文件路径的参数,请自行在ofstream中编写,如下所示:ofstream fout("rez.txt");
它可以正常工作。我的问题是,为什么每当我使用函数参数传递该变量时我都需要c_str()
函数?这个功能有什么作用?不是fn
等于"rez.txt"
吗?