0

我遇到过关于数据文件的问题,这些问题告诉我们编写一个函数来做事。在所有其他问题中,我们处理固定文件名,例如“abc.txt”,因此这些函数没有通用化。我想知道是否有一种方法可以使数据文件在语句中使用字符串变量:

fstream file("abc.txt",ios::in|ios::out);

并将其变成:

char str[20]="Newfile.txt";
fstream file(str,ios::in|ios::out);

有没有办法使用字符串作为文件名std::fstream?我尝试使用字符串,但没有创建这样的文件,尽管程序的编译没有显示任何错误。

4

1 回答 1

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);
    // ...
}
于 2013-02-04T04:58:54.847 回答