一次写入多个文件

时间:2016-09-25 13:46:40

标签: c++ file

我想在循环中创建多个文件并在其中写入内容。我做了以下代码。但它只创建一个名为“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";
  }
}

代码有什么问题吗?我如何获得这五个文件?

2 个答案:

答案 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();
  }
}