为什么“for”循环没有创建多个文件?

问题描述 投票:0回答:1

为什么这段代码没有创建多个文件? ofstream 在遇到不存在的文件名时应该创建一个文件。然而,由于某种原因,即使名称不同,它也只创建了一个。

#include <iostream>
#include <fstream>
using namespace std;

int main(void){
    ofstream fout;
    for (int a = 0; a <= 2; a++){
        string name = "test" + to_string(a) + ".txt";
        fout.open(name);
    }
    return 0;
}

尝试像这样从“for”切换到“while”

#include <iostream>
#include <fstream>
using namespace std;

int main(void){
    ofstream fout;
  int a = 0;
  while (a <= 2){
    string name = "test" + to_string(a) + to_string(a+1) + ".txt";
    fout.open(name);
    a++;
  }

    return 0;
}

但没有结果。另外,我在名称中添加了另一个数字 (a+1),但仍然得到与创建的文件相同的结果

c++ file for-loop while-loop fstream
1个回答
0
投票

您必须先关闭流,然后才能打开另一个流。

如果流已经打开,

fout.open(name);
将会失败并立即返回。

© www.soinside.com 2019 - 2024. All rights reserved.