• 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 282 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
Możesz ukryć, zamknąć lub zmodyfikować swoje pytanie, za pomocą przycisków znajdujących się pod nim. Nie krępuj się poprawić pochopnie opublikowanego pytania czy zamknąć go po uzyskaniu satysfakcjonującej odpowiedzi. Umożliwi to zachowanie porządku na forum.Przyciski pytania

64,865 zapytań

111,325 odpowiedzi

234,206 komentarzy

46,727 pasjonatów

Przeglądających: 223
Pasjonatów: 7 Gości: 216

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.

...