繁体   English   中英

一次写入多个文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM