Есть часть кода:
#ifndef LABA2_H_INCLUDED
#define LABA2_H_INCLUDED
#include <iostream>
#include <iomanip>
#include <cmath>
#include <fstream>
using namespace std;
void laba2()
{
ofstream F2;
F2.open("F2.txt");
int Kn = 0, r = 0, v = 0;
double Xh = -2.5, Xk = 7.6, H = 0.7, U1 = 9.15, W1 = 46, C, x, F, m[r];
long double S = 0, S1 = 0, Pn = 1;
C = 0.53 * pow(10, 2.1);
x = Xh;
while (x <= Xk) {
F = C * sin(x) - x * sin(pow(C,2));
S += F; // S
if (F < U1) {
S1 += F;
}
if (F > U1) {
Pn *= F;
Kn += 1;
}
if (F > W1) { ////////////////
m[r] = F;/////////////////
r += 1;//////////////////
}///////////////////////////
x += H;
}
F2<<"R = [ ";
for (int i = 0; i < r; i++)
{
F2<<m[i]<<" ";
}
F2<<"]"<<endl;
F2<<"S = "<<S<<endl;
F2<<"S1 = "<<S1<<endl;
F2<<"P3 = "<<Pn<<endl;
F2<<"K3 = "<<Kn<<endl;
F2<<"\n\nTable\n";
x = Xh;
while (x <= Xk) {
F = C * sin(x) - x * sin(pow(C,2));
F2<<"x = "<<x;
F2<<" F = "<<F<<endl;
x += H;
}
F2.close();
}
#endif // LABA2_H_INCLUDED
Здесь представлена именно проблемная часть. Помимо нее есть еще 2 файла с кодом, но с ними проблемы нет: запускаются и выполняются так, как нужно.
Суть проблемы в чем: в main.cpp я вызываю данную функцию и программа тут же завершается.
По идее она должна работать следующим образом: при вызове выполняются соответствующие операции, результат записывается в файл и выходит строка, которая сообщает о том, что запрос выполнен. Далее в консоле с помощью вызова другой функции я открываю файл с результатами этой программы.
На практике всего этого не происходит. Создается файл, но в него ничего не записывается.
Загвоздка все в одном фрагменте (он выделен слэшами). Когда я его помещаю в комментарий, все работает, но стоит мне вернуть все на свои места, происходит то, что я описала выше.
Вопрос к знающим: как исправить эту ошибку?
Заранее благодарю за отклик