[英]writing to multiple files at a time
我想在一个循环中创建多个文件,然后向其中写入一些内容。 我做了以下代码。 但它只会创建一个名为“ 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";
}
}
代码有什么问题吗? 我将如何获得这五个文件?
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();
}
}
#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();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.