• 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?

VPS Starter Arubacloud
+1 głos
402 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,140 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,140 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,140 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,140 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,140 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,140 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ź 204 wizyt
pytanie zadane 20 października 2016 w C i C++ przez Ku Ba Nowicjusz (150 p.)
+1 głos
1 odpowiedź 141 wizyt
0 głosów
0 odpowiedzi 309 wizyt
pytanie zadane 27 grudnia 2019 w PHP przez molik Użytkownik (950 p.)

92,452 zapytań

141,262 odpowiedzi

319,079 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...