zrobiłem sobie w funkcji main miejsce skoku i chciałbym z funkcja() albo funkcja2() przeskoczyć do któregoś momentu w main(). Niestety VC++2k8 wywala mi taki oto błąd: error C2094: label ‘top_main’ was undefined. Jak mam w takim razie zdefiniować ten top_main żeby mi tam przeskoczyło? Ewentualnie w jaki inny sposób mogę wyjść z jednej funkcji a wejść do innej korzystając z innej instrukcji?
Nie zupełnie nie tak się to robi w C++. Radzę zapomnieć zupełnie o istnieniu goto - w 99.999% przypadków jest zbędne. W C++ main to główna funkcja która jest wykonywana jako pierwsza i to w niej umieszcza się wszelkie instrukcje. W dodatku funkcja zwraca coś (lub niczego nie zwraca) i return służy właśnie do zwracania wartości.
Czyli np. definicja funkcji:
int funkcja() { return 5; }
Jeżeli chce się ją wykonać to umieszcza się wewnątrz funkcji main, np.:
int funkcja() { return 5; }
int main() {
funkcja(); // wywołanie funkcji
}
koniec(){
cout << "\nZakonczyc program?: [T/N]";
cin >> wybor;
switch(wybor)
{
case 'T': //program sie wylacza
break;
case 'N': //program ma rozpocząć działanie od początku
break;
default:
cout << "Blad, wybierz ponownie" //jak sie wyświetli to funkcja koniec() ma sie powtórzyć
}
}
Chciałbym wiedzieć czym zastąpić te komentarze żeby działało tak jak tam jest napisane.
Umieść właściwy kod programu w pętli np. do…while. Pod koniec spytaj, czy program ma zostać zakończony, jeśli tak, to zakończ, jeśli nie, wykonaj pętle znowu. Będzie najprościej i bez okropnego goto.