C ++: Как записать в несколько файлов с разными именами каждый цикл? - PullRequest
0 голосов
/ 29 мая 2018

У меня есть программа, в которой я создал вывод:

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 голосов
/ 29 мая 2018

использовать функцию 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...