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
我正在尝试编写一个程序,该程序将 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