Почему код продолжает прыгать, чтобы вернуть main () ;?

Эй, ребята, я новичок в C ++ и на практике я делаю «Создай свою собственную приключенческую игру». Я понятия не имею, в чем проблема, я думаю, что это как-то связано с моей переменной char, в основном я буду публиковать код my main.cpp Как бы то ни было, есть другие внешние файлы заголовков, но я не вижу смысла публиковать их, мой код будет работать без сообщения об ошибке, и я не вижу, как это можно сделать, если мой оператор if else не работает / my переменная типа char

Спасибо за помощь.

#include <iostream>
//LVL1
#include "C:\Users\QuestionMark\Desktop\Make Your Own Adventure\LVL1\Dog.h"#include "C:\Users\QuestionMark\Desktop\Make Your Own Adventure\LVL1\Dream.h"#include "C:\Users\QuestionMark\Desktop\Make Your Own Adventure\LVL1\GTFO.h"
using namespace std;

int main(){

cout << "Welcome to my 'MAKE YOUR OWN ADVENTURE GAME!!!'\n";
cout << "Have Fun and enjoy the ride!\n";
cout << "Would you like to put in a cheat code??\n";
cout << "Yes or No, Cap Sensitive!\n";
char y[3];
cin >> y;
if(y == "Yes"){
cout << "Please Enter Cheat Code now\n";
char z[5];

if(z == "Dog"){
Dog();
}else if(z == "Dream"){
Dream();
}else if(z == "GTFO"){
GTFO();
}else if(z == "Path"){
Path();
}else if(z == "Sword"){
Sword();
}else if(z == "Weird"){
Weird();
}else{
cout << "Invalid Cheat Code\n";
}
}else if(y == "No"){

cout << endl;
cout << "You wake up and your house is on fire what do you do ??\n";
cout << "Quick Grab The Dog = 0, GTFO = 1, Go back to sleep = any other number\n";
int x;
cin >> x;
if(x == 0){
Dog();
}else if(x == 1){
GTFO();
}else{
Dream();
}

}else{
cout << "Invalid Answer\n\n\n";
return main();
}
return 0;
}

На боковой ноте.
В The Header Dog я вызвал все функции для level2
И мне просто интересно, почему моя программа работает нормально, когда я не могу позвонить
все функции уровня 2 в моем заголовке GTFO и заголовке моей мечты.

пс:
Просто чтобы убрать путаницу Path () ;, Sword (); и Weird ();
все функции level2.

имп:
Также просто интересно, почему мне не нужно вызывать функции level2 в моем main.cpp?

последняя мысль:
Спасибо за ваше время и хорошего дня!

PS последние мысли:
Это портал 1 ссылок.

0

Решение

Вам не разрешено звонить main() в программе на C ++. Период.
В C да, но в C ++ нет. Когда у вас есть звонок main() в вашей программе вы вызываете неопределенное поведение, и программа может делать что угодно.

2

Другие решения

Вы не сравниваете строки c с ==. Вместо этого используйте strcmp (). Так как это c ++, вы все равно должны использовать std :: string. Кроме того, z [5] недостаточно велик, чтобы содержать «Dream» или другие 5 строк символов.

2

По вопросам рекламы [email protected]