• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Funkcja getchar() nie działa.

Object Storage Arubacloud
0 głosów
2,416 wizyt
pytanie zadane 8 sierpnia 2015 w C i C++ przez xaluke Nowicjusz (120 p.)
edycja 8 sierpnia 2015 przez xaluke

Witam Serdecznie,

 

Mam problem z funkcją getchar(). W zamiarze chciałem aby po wykonaniu kodu program czekał na wciśnięcie klawisza, jednak zamyka się on automatycznie tak jakby tej funkcji wogóle nie było. Zaznaczam, że dołączyłem bibliotekę <stdio.h>​

 

#include <iostream>
#include <cstdlib>
#include <time.h>
#include <stdio.h>


using namespace std;

int liczba, strzal, ile_prob=0;
int main()
{
    cout << "Gra Liczba od 1 ... 100!" << endl;
    srand(time(NULL));
    liczba = rand()%100+1;



   while (strzal!=liczba)

   {

   cout << "Zgadnij liczbe (Liczba prob "<<ile_prob<<"):";
   cin >>strzal >>"\a";

    if (strzal == liczba)
        cout << "Brawo"<<endl;
    else if (strzal < liczba)
       cout << "Za malo"<<endl;

    else if (strzal > liczba)
       cout << "Za duzo"<<endl;


  ile_prob++;
   }
getchar();
    return 0;
}

 

5 odpowiedzi

+1 głos
odpowiedź 8 sierpnia 2015 przez sngl00 Obywatel (1,110 p.)
#include <cstdio>

Spróbuj dodać tą bibliotekę, ja jej używam i mi działa getchar().

komentarz 8 sierpnia 2015 przez xaluke Nowicjusz (120 p.)
Niestety nie działa
0 głosów
odpowiedź 8 sierpnia 2015 przez Dorion300 Szeryf (90,250 p.)
Moze ustaw na getch które istnieje w <conio.h>
komentarz 8 sierpnia 2015 przez xaluke Nowicjusz (120 p.)

Dodałem bibliotekę <conio.h> oraz umieściłem getch(); nie działa nadal 

komentarz 8 sierpnia 2015 przez Dorion300 Szeryf (90,250 p.)

A gdzie postawiłeś getch?

stawiłeś getch zamiast getchar?

 cin >>strzal >>"\a";

Jesteś pewnny że z tym ">>"\a"" tak powinno być?

Może to wywal?

komentarz 8 sierpnia 2015 przez xaluke Nowicjusz (120 p.)
Dla sprawdzenia wywaliłem, niestety nadal nie działa .
0 głosów
odpowiedź 8 sierpnia 2015 przez niezalogowany

Czy w twoim kodzie serio jest taka linijka:

<strong>getchar</strong><span style="color:rgb(84, 84, 84); font-family:arial,sans-serif; font-size:small">();</span>

Bo powinno być tylko:

getchar();

Zupełnie nie wiem czemu użyłeś kodu HTML-a w C++ :|

komentarz 8 sierpnia 2015 przez xaluke Nowicjusz (120 p.)
W kodzie nie ma tej linijki.. Coś musiało pójść nie tak przy kopiowaniu.
komentarz 8 sierpnia 2015 przez Dorion300 Szeryf (90,250 p.)
I tak mu niedziała, dodało mu się po zapewnie te kochane forum chciało przepiękniej ustawić.
komentarz 8 sierpnia 2015 przez niezalogowany
Tak też coś myślałem ;)
0 głosów
odpowiedź 8 sierpnia 2015 przez Vodoo Dyskutant (9,270 p.)
Użyj system("pause>nul"). Gdzie ">nul" ukrywa komunikat "Proszę wcisnąć dowolny klawisz..."
komentarz 8 sierpnia 2015 przez Dorion300 Szeryf (90,250 p.)
edycja 8 sierpnia 2015 przez Dorion300
"system" nie jest zalecany w użyciu gdyż może w ktorejś wersji systemu (albo gdy system jest częsciowo zepsuty i nie przyjmuje żadnych komend w terminalu) to aplikacja powinna wywalić błąd.
0 głosów
odpowiedź 8 sierpnia 2015 przez Adrian1999 Nałogowiec (34,570 p.)
edycja 8 sierpnia 2015 przez Adrian1999

spróbuj char z = getchar(); EDit p.s nie można wpisywać nic w cinie, jeżeli chcesz łączyć znaki musisz do tego wykorzystać stringa

#include <iostream>
#include <cstdlib>
#include <time.h>
#include <stdio.h>


using namespace std;

int liczba, strzal, ile_prob = 0;
int main()
{
	cout << "Gra Liczba od 1 ... 100!" << endl;
	srand(time(NULL));
	liczba = rand() % 100 + 1;



	while (strzal != liczba)

	{

		cout << "Zgadnij liczbe (Liczba prob " << ile_prob << "):";
		cin >> strzal;

		if (strzal == liczba)
			cout << "Brawo" << endl;
		else if (strzal < liczba)
			cout << "Za malo" << endl;

		else if (strzal > liczba)
			cout << "Za duzo" << endl;


		ile_prob++;
	}
	getchar();
	return 0;
}

Ten kod jest prawidłowy, w cinie nie wolno dodawać tekstu od programisty, ponieważ cin>> to strumień wejścia cout wyjścia, to co wychodzi jest podane przez programistę(w zmiennych itd), to co wchodzi przez użytkownika

komentarz 8 sierpnia 2015 przez xaluke Nowicjusz (120 p.)

Chodzi Ci o tę linijkę ? cin >>strzal >>"\a";

 

Chciałem aby po wpisaniu liczby pojawił się dźwięk systemowy a z tego co słyszałem "\a" jest za to odpowiedzialny.

komentarz 8 sierpnia 2015 przez Adrian1999 Nałogowiec (34,570 p.)
Ale to są dane wchodzące nie możesz dodać własnego tekstu zaraz po tym zrób to poprostu w cout, inaczej nie dasz rady
komentarz 8 sierpnia 2015 przez xaluke Nowicjusz (120 p.)
Dzięki za radę na przyszłość. Wracając do problemu nadal nie działa kod tak jak powinien.
komentarz 8 sierpnia 2015 przez Adrian1999 Nałogowiec (34,570 p.)
Pokaż kod, oraz na jakim systemie operacyjnym kompilujesz. I w jakim kompilatorze
komentarz 8 sierpnia 2015 przez xaluke Nowicjusz (120 p.)
Kod jest umieszczony na samej górze w poście. System Windows 8 Code blocks 13.12
komentarz 8 sierpnia 2015 przez Adrian1999 Nałogowiec (34,570 p.)
#include <iostream>
#include <cstdlib>
#include <time.h>
#include <stdio.h>
 
 
using namespace std;
 
int liczba, strzal, ile_prob = 0;
int main()
{
    cout << "Gra Liczba od 1 ... 100!" << endl;
    srand(time(NULL));
    liczba = rand() % 100 + 1;
 
 
 
    while (strzal != liczba)
 
    {
 
        cout << "Zgadnij liczbe (Liczba prob " << ile_prob << "):";
        cin >> strzal;
        cout<<"/a";
        if (strzal == liczba)
            cout << "Brawo" << endl;
        else if (strzal < liczba)
            cout << "Za malo" << endl;
 
        else if (strzal > liczba)
            cout << "Za duzo" << endl;
 
 
        ile_prob++;
    }
    getchar();
    cin.sync(); // by po wykonaniu programu się nie wyłączył
    cin.get();
cin.get();

    return 0;
}

Spróbuj tak u mnie działa świetnie, jeżeli chodzi że ci się wyłącza to dodałem również linijke przed wyłączeniem konsoli po zakończeniu działania programu

Podobne pytania

0 głosów
1 odpowiedź 311 wizyt
pytanie zadane 16 maja 2016 w C i C++ przez Avernis Nałogowiec (27,400 p.)
+1 głos
2 odpowiedzi 236 wizyt
0 głosów
2 odpowiedzi 330 wizyt
pytanie zadane 18 grudnia 2015 w C i C++ przez Piotr Karaś Początkujący (460 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...