1

だから私はこれをやろうとしました:

#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++ を初めて使用するので、何を試したらよいか、またはこれが可能かどうかもわかりません (確かにそうです...)。私は次のことを試しましたが、それは本当にただの暗闇の中での刺し傷であり、役に立ちませんでした:

#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"); を実行すれば、すべてが満足です。

4

1 に答える 1

6

元の IOstream ライブラリには、std::string. サポートされている唯一のタイプはchar const*. を使用しchar const*てを取得できます:std::stringc_str()

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

文字列リテラルの型は型ではありませんがstd::stringchar const[n]n文字列内の文字数 (終端の null 文字を含む) です。

C++ 2011 では、ファイル ストリーム クラスが改善されstd::string、文字列が必要な場所でも使用できるようになりました。

于 2012-10-02T18:37:19.053 に答える