Невозможно вызвать функцию в случае переключения - C ++ - PullRequest
2 голосов
/ 25 сентября 2019

Я пытаюсь запустить какую-то программу шифрования, но я не могу вызвать void enc с помощью функции переключения, Исходный код:

#include <iostream>
#include <conio.h>
#include <windows.h>
#include <algorithm>
#include <string>

using namespace std;

int x,y,z,a,b,c,n;
char tabs[26][26],temp[512];
string input,output,Key;

void open();
void tableau();
void inchar();
void enc();
void dec();

int main() {
  open();
  cout << "1.\tEncrypt \n2.\tDecrypt \nOption: "; cin >> a;
  switch (a) {
    case 1:
      enc(); cout << a << "Debugger";
      break;
    case 2:
      dec();
    break;
  }
  return 0;
}

void enc(){
  void open();
  void inchar();
}

void dec(){

}

void inchar(){
  cout << "input: "; cin >> input; z = input.size();
  char dispos[input.size() + 1];
  copy(input.begin(),input.end(),dispos); dispos[input.size()] = '\0';
  for (int i = 0; i < z; i++) {
    temp[i] = dispos [i];
  }
}

void tableau() {
  cout << "Initialize Table Construct!!" << endl;
  for (int i = 0; i < 26; i++) {
    for (int j = 0; j < 26; j++) {
      x = (i + j) % 26; y = x + 65;
      tabs[i][j] = y;
      cout << tabs[i][j] << " ";
    }
    cout << endl;
  }
}

void open() {
  cout << "Well Hello There";
}

каждый раз, когда я выбираю вариант 1, cout отладчика продолжал появляться.если отладчик удален, то код просто завершается.

PS: я переместил вызов функции перед переключателем, но все равно он ничего не делает.PSS: извините за плохой английский.

1 Ответ

4 голосов
/ 25 сентября 2019

Проблема в том, что ваша enc() функция вызывается , но она ничего не делает!Синтаксис неверен:

void enc(){
  void open();   // These lines DECLARE two NEW function ...
  void inchar(); // ... without ever calling them!
}

Чтобы вызвать две функции, используйте это:

void enc(void) {
    open();
    inchar();
}
...