c ++ ofstream(someVariable)初始化

时间:2012-10-02 18:28:29

标签: c++

所以我试着这样做:

#include <iostream>//For cout/cin
#include <fstream> //For ifstream/ofstream

using namespace std;

int main()
{
    string types[] = {"Creativity", "Action", "Service"};
    for(int i = 0; i < sizeof(types)/sizeof(string); i++) {
        string type = types[i];
        string filename = type + ".html";
        ofstream newFile(filename);
        //newFile << toHTML(getActivities(type));
        newFile.close();
    }
    return 0;
}

我遇到了错误。我是C ++的新手,所以我不知道该尝试什么,或者如果这是可能的(SURELY它是......)。 我尝试了下面这个,但它真的只是在黑暗中刺伤而没有帮助:

#include <iostream>//For cout/cin
#include <fstream> //For ifstream/ofstream

using namespace std;

int main()
{
    string types[] = {"Creativity", "Action", "Service"};
    for(int i = 0; i < sizeof(types)/sizeof(string); i++) {
        string type = types[i];
        //Attempting to add const..
        const string filename = type + ".html";
        ofstream newFile(filename);
        //newFile << toHTML(getActivities(type));
        newFile.close();
    }
    return 0;
}

我的意思是,如果我做'ofstream newFile(“somefile.html”),它会很高兴;

1 个答案:

答案 0 :(得分:6)

原始IOstream库没有构造函数使用std::string。支持的唯一类型是char const*。您可以使用char const*

std::string获得c_str()
std::string name("whatever");
std::ofstream out(name.c_str());

字符串文字的类型不是std::string类型,但它的类型为char const[n],其中n是字符串中的字符数,包括终止空字符。

在C ++ 2011中,文件流类得到了改进,也可以在需要字符串的地方使用std::string