Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Funkcja getchar() nie działa

Ostatnio zmodyfikowano 2016-11-12 08:33
Autor Wiadomość
cimky
Temat założony przez niniejszego użytkownika
Funkcja getchar() nie działa
» 2016-11-07 17:06:51
Witam.
Uczę się C++ i napisałem program do wyznaczania silni z podanej liczby ( narzucając sobie, iż ma to być rekurencja, a do życia mam powołać tylko jedną zmienną ).

Mam problem, tylko w tym programie, stawiając standardowo na koniec kodu funkcję getchar() program nie zatrzymuje się. Używam Microsoft Visual Studio - zaraz po wykonaniu programu, okno zamyka się.
C/C++
#include <iostream>

using namespace std;
int rekurencja__silnia( int n )
{
    if( n < 2 ) return 1;
    else return n * rekurencja__silnia( n - 1 );
   
}
int main()
{
    int n;
    cout << "\n\n\tOblicze silnie podanej liczby.\n\tPodaj liczbe: ";
    cin >> n;
    cout << "\n\n\tSilnia " << n << "! wynosi: " << rekurencja__silnia( n );
    getchar();
    return 0;
}
P-153449
karambaHZP
» 2016-11-07 20:56:08
Uruchom przez skrót "ctrl +f5". Nie potrzebujesz żadnych funkcji stopujacych koniec programu.
P-153460
cimky
Temat założony przez niniejszego użytkownika
» 2016-11-10 07:02:08
Niestety, zaproponowane przez Ciebie rozwiązanie nie pomaga. Z resztą nie może pomóc, skoro:

pressing CTRL-F5 (start without debugging) will start the application and keep the console window open until you press any key.


Jednak ostatecznie przerzuciłem się z:
getchar();

Na:
system( "pause" );

Takie działanie rozwiązuje problem.
Pozdrawiam.
P-153536
carlosmay
» 2016-11-10 11:21:46
pressing CTRL-F5 (start without debugging) will start the application and keep the console window open until you press any key.
Co w tym dziwnego?
Klikając ctrl + f5 uruchamiasz bez debuggera, a klikając f5 uruchamiasz z debuggerem.
Jeśli uruchomisz w trybie debuggera i nie ustawisz breakpointa program kończy działanie. Ot co.
Nie widzę konieczności startu programu f5 jeśli nie masz zamiaru go śledzić.
Te wszystkie dodatki typu:
C/C++
system( "pause" );
std::cin.get();
_getch();
 są całkowicie zbędne.
P-153538
cimky
Temat założony przez niniejszego użytkownika
» 2016-11-12 04:30:03
Mam zamiar go śledzić. Problem już rozwiązałem, można zamknąć dla przyszłych pokoleń.
P-153594
karambaHZP
» 2016-11-12 08:33:58
Najwyraźniej nie rozumiesz jak to działa.
P-153598
« 1 »
  Strona 1 z 1