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

Dlaczego wychodzi mi cały czas z pliku .exe mimo użycia odpowiednich instrukcji?

+1 głos
133 wizyt
pytanie zadane 5 maja 2015 w C i C++ przez marcin2219 Nowicjusz (160 p.)

Witam, wklejam poniżej kod, który sprawdzałem z tym, który M. Zelent podał na stronie i w filmiku (4 odc. C++ - losowa liczba) - nie widzę żadnej różnicy u mnie poza innymi nazwami zmiennych i takimi tam. Użyłem instrukcji getchar(), nawet dwa razy i mimo wszystko przy otwieraniu aplikacji w .exe, po odgadnięciu liczby, program natychmiast mi się zamyka. Nie pomaga też instrukcja system("pasue") - nie zasnę jak się nie dowiem co jest :D

Z góry dziękuję za odp!

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

using namespace std;

int liczba, typ, proba=0;

int main()
{
    cout << "Witamy w programie! Musisz zgadnac jaka liczbe pomyslalem od 1 do 100:" << endl <<endl ;

    srand(time(NULL));
    liczba = rand()%100+1;

    while (liczba!=typ)
    {
     proba++;

     cout << endl << endl <<"To twoja " << proba << "proba, podaj liczbe: ";
     cin >> typ;
      if (liczba>typ)
          cout << "To za malo" << endl;
      else if (liczba<typ)
          cout << "To za duzo";
      else if (liczba==typ)
          cout << "Gratulacje wygrales! Zgadles liczbe za " << proba << "razem.";

    }

    getchar();getchar();
    return 0;
}

 

2 odpowiedzi

+1 głos
odpowiedź 5 maja 2015 przez katolik6 Dyskutant (8,250 p.)
wybrane 5 maja 2015 przez marcin2219
 
Najlepsza
Naprawdę nie pomaga system ("pause");? Dziwne... Alternatywą może być cin lub Sleep (10000);
komentarz 5 maja 2015 przez marcin2219 Nowicjusz (160 p.)
Dzieki za błyskawiczną odpowiedź - myślałem, że mam gdzieś jakisgłupi błąd, którego nie mogę zauważyć. Dopiero uczę się programowania, wcześniej obracałem się trochę w html, css, na razie idzie mi dobrze, chłonę wszystko, ale to mi zablkowało dzisiejszą naukę, jakoś nie mogę tego przeżyć :D Ale kod jest poprawny i może nie warto na to zwracać uwagi i lecieć dalej?

Nie pomaga nic - dodam, że gdy odpalam kod M. Zelenta to wszystko gra, więć z odtwrzaczem exe wszystko raczej gra... Dziwne

P. S nawet po dodaniu cin program nadal wychodzi - dodałem cin >> liczba; żeby móc jeszcze raz wpisać liczbę (nad instrukcją system("pause"), jak mógłbym jeszcze użyć cin ?
komentarz 5 maja 2015 przez katolik6 Dyskutant (8,250 p.)
Kod jest poprawny, a problem leży gdzieś pomiędzy if (liczba==typ), a return 0;... Czekaj, wysypuje? Bez podania info o czasie wykonywania itp.?
komentarz 5 maja 2015 przez katolik6 Dyskutant (8,250 p.)
Co do cin, o to mi chodziło, żeby pobrać wartość zmiennej trzeba poczekać na jej wpisanie.
komentarz 5 maja 2015 przez marcin2219 Nowicjusz (160 p.)
Oki, pokombinowałem trochę - możliwe, że źle odświeżałem program, może myliłem się przy zapisywaniu kodu, a odpalałem inny, bo w pewnym momencie prawie nic mi nie działało po zmianie. Sorki za kłopot, bo błąd mógł być bardziej prozaiczny, choć na początku na pewno tylko mój kod miałem i nie działał jak powinno.

Dzięki jeszcze raz za szybką pomoc - przynajmniej zyskałem siły do postarania się :D
komentarz 5 maja 2015 przez katolik6 Dyskutant (8,250 p.)
Eee... a co tak wogule zrobiłeś?
komentarz 5 maja 2015 przez marcin2219 Nowicjusz (160 p.)

Teraz mam taki kod jak poniżej. Wydaje mi się, że mogłem mieć jakieś problemy z odświeżeniem prawidłowego pliku - miałem otwarte 4 miejsca - 2 pliki (mój i M. Zelenta ) i tyle samo plików .exe  - być może z własnej głupoty, sprawdzałem inne miejsca, bo doszedłem do tego jak wyłączyłem wszystko od nowa włączyłem mój plik i moje .exe - poprawiłem wszystko i nagle zaczęło działać. Dziwny błąd był i zapewne dziwna przycznyna.

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

using namespace std;

int liczba, typ, proba=0;

int main()
{
    cout << "Witamy w programie! Musisz zgadnac jaka liczbe pomyslalem od 1 do 100:" <<endl ;

    srand(time(NULL));
    liczba = rand()%100+1;

    while (liczba!=typ)
    {
     proba++;

     cout << endl << endl <<"To twoja " << proba << "proba, podaj liczbe: ";
     cin >> typ;
      if (liczba>typ)
          cout << "To za malo" << endl;
      else if (liczba<typ)
          cout << "To za duzo";
      else if (liczba==typ)
          cout << "Gratulacje wygrales! Zgadles liczbe za " << proba << "razem.";

    }

    getchar();
    return 0;
}

 

komentarz 5 maja 2015 przez katolik6 Dyskutant (8,250 p.)
Naprawdę dziwne, z tego, co widze usunąłeś tylko jeden getchar () i endl. Mógłbyś ukryć pytanie, lub dać najlepszą, żeby nie było w ,,bez wybranej odpowiedzi''? P.S. proponuję wstawić system ("cls"); w pierwszej linii pętli.
komentarz 5 maja 2015 przez marcin2219 Nowicjusz (160 p.)
No te zmiany to już kosmetyczne, myślę, że może coś się działo niezwiązanego z c++, po prostu .exe otwierał się ze starym jeszcze kodem czy coś. Oznaczę zaraz odpowiedź jako najlepszą - dziękuję za poświęcenie czasu. Później się pobawię jeszcze to wstawię "cls" - przy częstej edycji najwięcej się chyba nauczy : )
komentarz 6 maja 2015 przez katolik6 Dyskutant (8,250 p.)
Oj, tak, kodować, kodować i kodować. Najgorzej jest ze znalezieniem zadania :)
0 głosów
odpowiedź 6 maja 2015 przez Vakoss. Bywalec (2,870 p.)
Bardzo dziwne, sytem ("pause") powinien jak najbardziej działać. Pokombinuj jeszcze z funkcją sleep

Podobne pytania

0 głosów
1 odpowiedź 120 wizyt
pytanie zadane 20 października 2016 w C i C++ przez Ku Ba Nowicjusz (150 p.)
+1 głos
3 odpowiedzi 294 wizyt
0 głosów
2 odpowiedzi 52 wizyt
pytanie zadane 17 września 2018 w Offtop przez zkkf56 Mądrala (7,310 p.)
Porady nie od parady
Publikując kody źródłowe korzystaj ze specjalnego bloczku koloryzującego składnię (przycisk z napisem code w edytorze). Nie zapomnij o ustawieniu odpowiedniego języka z rozwijanego menu oraz czytelnym formatowaniu kodu.Przycisk code

65,727 zapytań

112,367 odpowiedzi

237,225 komentarzy

46,687 pasjonatów

Przeglądających: 131
Pasjonatów: 0 Gości: 131

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...