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

C++ C++;:如何在每个循环中写入具有不同名称的多个文件?,c++,file,loops,filenames,C++,File,Loops,Filenames,我有一个创建输出的程序: std::ofstream OutA("A.dat"); 此程序中有一个循环,其中创建的数据将放入: for ( k = 1; k < n_iterations ; k++ ){ OutA << Data_for_A << std::endl; } for(k=1;k

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

std::ofstream OutA("A.dat");
此程序中有一个循环,其中创建的数据将放入:

for ( k = 1; k < n_iterations ; k++ ){
OutA << Data_for_A << std::endl;
}
for(k=1;kOutA使用std::to_字符串函数

#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;
}
#包括
#包括
#包括
使用名称空间std;
_A()的字符串数据_{
回复“你好”;
}
int main(){
双x=3;
int n_迭代=5;
对于(双T=0;TOutA将
T
转换为字符串,并使用它来构造文件名。然后只需使用该文件名创建一个
std::ostream
。如果
x
是一个已知的数字或具有可预测的合理上限的东西,您可以根据需要预生成所有名称并从表中读取它们。如果使用“name”而不是“name.c_str()”?我在这里进行了测试,它给出了相同的结果。@Gabrielenrique这里没有区别,
.c_str()不必要。与C++标准库中的大多数其他函数一样, STD::OfString  S和C风格字符串。<代码> String 在<代码> STD< /COD>命名空间中,就像 OFFROWS。使用命名空间std;
删除
,这是一种不好的做法。
#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;
}