C ++:如何在每个循环中写入多个具有不同名称的文件?

时间:2018-05-28 23:23:59

标签: c++ file loops filenames

我有一个创建输出的程序:

std::ofstream OutA("A.dat");

此程序中有一个循环,其中创建数据以放入A:

for ( k = 1; k < n_iterations ; k++ ){
OutA << Data_for_A << std::endl;
}

然而,现在我想做另一个循环。

我将在A中放置的值的演变取决于变量T. 所以,我会为不同的T制作几个表。会有一个这样的循环:

for ( T = 0; T < x; T = T + 0.5){
    for ( k = 1; k < n_iterations ; k++ ){
    OutA << Data_for_A << std::endl;
    }
}

但是,如果循环改变了T的值,根据变量T,它会写入具有不同名称的不同文件,这将是方便的。

示例:

  • 第一次运行循环时,将数据传递给“OutA1.dat”,第二次传递给“OutA2.dat”,然后使用索引1,2,...

  • 或者索引不是1,2,...而是T的值。因此:“OutA_T0.dat”,在下一个“OutA_T0.5.dat”中,索引变化T = 0,0.5,1.1.5,......

最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

使用std :: to_string函数。

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

string Data_for_A() {
    return "hello";
}

int main() {
    double x = 3;
    int n_iterations = 5;

    for (double T = 0; T < x; T = T + 0.5) {
        string name = "OutA_T" + std::to_string(T) + ".dat";
        std::ofstream OutA(name.c_str());
        for (int k = 1; k < n_iterations ; k++ ) {
            OutA << Data_for_A() << std::endl;
        }
    }
    return 0;
}