我遇到过有关数据文件的问题,这些问题告诉我们编写一个函数来做东西。在每个其他问题中,我们处理固定文件名,例如“abc.txt”,因此函数不会概括。我想知道数据文件是否有一种方法可以在语句中使用字符串变量:
fstream file("abc.txt",ios::in|ios::out);
并将其转换为:
char str[20]="Newfile.txt";
fstream file(str,ios::in|ios::out);
有没有办法将字符串用作std::fstream
的文件名?我尝试使用字符串但是没有创建这样的文件,尽管程序的编译没有显示任何错误。
答案 0 :(得分:6)
这取决于编译器。这种方式一致:
void do_something(std::string const &filename) {
std::fstream(filename.c_str());
// ...
}
这种方式适用于新的(C ++ 11)编译器,但不适用于较旧的编译器:
void do_something(std::string const &filename) {
std::fstream(filename);
// ...
}