Мне нужно выполнить функцию, из массива указателей на функцию, номер которой я укажу в консоли. Почему не выполняется?
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
//текст второго задания
int filess() {
int a[25] = { 0 };
ofstream file("proertyy.txt");
for (int i = 0; i < 24; i++)
{
a[i] = rand() % 10 + 1;
file << a[i];
}
file << endl;
file.close();
return 0;
}
int n2()
{
filess();
ifstream readfile("proertyy.txt", ios::in | ios::binary);
const int strings = 25;
char mass[strings] = { 0 };
if (!readfile.is_open()) {
cout << "Файл не открыт" << endl;
}
else {
cout << "Файл открыт" << endl;
}
for (int i = 0; i < strings; i++)
{
readfile >> mass[i];
cout << mass[i] << endl;
}
readfile.close();
int buff = 0;
int i, j;
for (i = 1; i < strings; i++)
{
buff = mass[i];
for (j = i - 1; j >= 0 && mass[j] > buff; j--)
mass[j + 1] = mass[j];
mass[j + 1] = buff;
}
ofstream ofile;
ofile.open("proertyy.txt", ios::app); ;
if (!ofile.is_open()) {
cout << "Файл не открыт" << endl;
}
else {
cout << "Файл открыт" << endl;
}
for (int i = 0; i < strings; i++) {
cout << mass[i];
ofile << mass[i];
}
ofile.close();
return 0;
}
//текст третьего задания
int n3()
{
int N;
cout << "Введите N:" << endl;
cin >> N;
ofstream file("proga.txt");
if (N < 27 && N>0) {
for (int i = 0; i < N; i++)
{
for (char j = 'A'; j <= 'A' + i; j++) {
file << j;
}
for (int e = 1; e < N - i; e++) {
file << "*";
}
file << '\n';
}
}
else {
cout << "Введите число от 0 до 27";
}
file.close();
return 0;
}
//текст четвертого задания
int n4() {
ifstream file("proga.txt");
if (!file) {
cout << ": неудалось открыть файл" << endl;
return 0;
}
size_t par = 0;
while (file) {
string s;
getline(file, s);
if (s.substr(0, 5) == " ") {
par++;
}
}
cout << "количество абзацев: " << par << endl;
return 0;
}
int menu(int y) {
cout << "Выберите номер"<<endl;
cout << "1.Запустить функцию 2 задания"<<endl;
cout << "2.Запустить функцию 3 задания"<<endl;
cout << "3.Запустить функцию 4 задания"<<endl;
cout << "4.Запустить функцию 5 задания"<<endl;
cin>>y;
return y;
}
int main()
{
ofstream jj("itog.txt");
setlocale(LC_ALL, "Russian");
int (*mass[3])() = { n2,n3,n4 };
int y = 0;
menu(y);
switch (y)
{
case 1:
jj.open("itog.txt");
if (!jj) {
cout << ": неудалось открыть файл" << endl;
return 0;
}
mass[0];
jj.close();
case 2:
jj.open("itog.txt");
if (!jj) {
cout << ": неудалось открыть файл" << endl;
return 0;
}
mass[1];
jj.close();
case 3:
jj.open("itog.txt");
if (!jj) {
cout << ": неудалось открыть файл" << endl;
return 0;
}
mass[2];
jj.close();
default:
break;
}
}