C++ fstream - 如何在 .open() 中添加变量而不是字符串?

C++ fstream - How to add variable in .open() instead of string?

我正在尝试编写一个程序,该程序将 create/output 循环内文件夹中的多个文件,但出现错误。这样的事情可以做吗?一直在寻找没有运气。谢谢! 这是一个例子:

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    ofstream text;
    for(int i = 0; i < 100; i++);
    {
        text.open("folder/" + i + ".txt");
        text << "This is text file #" << i << "."<< endl;
        text.close();
    }
return 0;
}

您正在尝试添加 const char *number,这是不可能的。这不是你想要的。相反,您应该在循环中执行以下操作

ofstream text;
for(int i = 0; i < 100; i++);
{
    string str;
    str = "folder/";

    std::stringstream ss;
    ss << i; //convert int to stringstream

    str += ss.str(); //convert stringstream to string 
    str + =  ".txt";

    text.open(str); //use final string
    text << "This is text file #" << i << "."<< endl;
    text.close();
} 

不要忘记包含 #include <sstream>

您不能连接一个简单的字符串并仅通过 写作

  "folder/" + i + ".txt";

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    ofstream text;
    for(int i = 0; i < 100; i++);
    {
        stringstream FileName;
        FileName<<"folder/"<<i<<".txt;
        text.open(FileName.str().c_str());
        text << "This is text file #" << i << "."<< endl;
        text.close();
    }
    return 0;
 }

我已经在循环中创建了字符串流。 这样做会在每个循环中创建一个新的字符串流,并在循环结束时销毁 当您在循环外声明 stringstream 时,同样会起作用。 但是那种情况下你在每个循环结束时清除了 stringstream