一次写入多个文件

writing to multiple files at a time

本文关键字:文件 一次      更新时间:2023-10-16

我想在循环中创建多个文件并在其中写入一些内容。我做了如下代码但是它只创建一个名为"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的引用特别声明:

Open file打开由参数filename, associated标识的文件它与流对象配合,使输入/输出操作都能进行按其内容执行。参数mode指定开始模式。

如果流已经与一个文件相关联(即,它已经是打开),则调用此函数失败。

你从来没有在循环中关闭你正在处理的文件,所以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();
  }
}