我想在循环中创建多个文件并在其中写入内容。我做了以下代码。但它只创建一个名为“1”的文件而不是五个文件(从1到5):
#include <fstream>
#include<iostream>
using namespace std;
int main(){
FILE *fp;
ofstream os;
char i;
char fileName[] = "0.txt";
for(i='1';i<='5';i++)
{
fileName[0]=i;
.
os.open (fileName);
os<<"Hello"<<"\n";
}
}
代码有什么问题吗?我如何获得这五个文件?
答案 0 :(得分:2)
std::ofstream::open的引用明确指出:
打开文件打开由参数filename标识的文件,关联 它与流对象,以便输入/输出操作 对其内容进行了表达。参数模式指定打开模式。
如果流已经与文件关联(即,它已经存在 打开),调用此函数失败。
您永远不会关闭您在循环中使用的文件,因此第二次第五次open
失败。
添加它:
for(i='1';i<='5';i++)
{
fileName[0]=i;
os.open (fileName);
os<<"Hello"<<"\n";
os.close();
}
此外,您应该检查open()
是否成功:
for(i='1';i<='5';i++)
{
fileName[0]=i;
os.open (fileName);
if(os) // checks if open() succeeeded
{
os<<"Hello"<<"\n";
os.close();
}
}
答案 1 :(得分:0)
#include <fstream>
#include <iostream>
using namespace std;
int main() {
ofstream os;
char fileName[] = "0.txt";
for(int i = '1'; i <= '5'; i++)
{
fileName[0] = i;
os.open(fileName);
os << "Hello" << "\n";
os.close();
}
}