logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Błąd w kodzie C++ z Od zera do gier kodera - jak poprawić?

Gaatt 27 Mar 2011 14:11 4912 6
REKLAMA
  • #1 9328644
    Gaatt
    Poziom 10  
    Posty: 52
    Ucząc się języka C++ korzystam z "Od zera do gier kodera". Wiem, że ma kilka błędów np. void zamiast int. Ten kod jest skopiowany z poradnika. Nie rozumiem zaznaczonych błędów. i jak mam poprawić błąd 1.

    Błąd w kodzie C++ z Od zera do gier kodera - jak poprawić?

    Za wszelką pomoc z góry dziękuje.
  • REKLAMA
  • Pomocny post
    #2 9328662
    Jarosx9
    Poziom 35  
    Posty: 2785
    Pomógł: 265
    Ocena: 401
    W pierwszym przypadku użyj _getch. To nie błąd a ostrzeżenie, skompiluje się mimo to.
    W drugim musisz zwrócić jakąś wartość czyli np. return 0 albo w zmienić typ funkcji na void.

    PS. Nie bardzo kapuje jak można nie znać dziś angielskiego (podstaw) i się zabierać za programowanie. Niedługo pewnie będzie trzeba słowa kluczowe C/C++ tłumaczyć w programach na polski.
  • REKLAMA
  • #3 9328687
    Gaatt
    Poziom 10  
    Posty: 52
    Czy mógłby pan to rozwinąć? Dlaczego w drugim przypadku trzeba użyć _getch(), co to zmienia?
  • REKLAMA
  • #4 9328717
    Jarosx9
    Poziom 35  
    Posty: 2785
    Pomógł: 265
    Ocena: 401
    Niewiele ale kompilator sobie życzy że lepiej będzie jak użyjesz _getch. Jakaś tam zgodność z normami. Jak już C++ pełną gębą to ładniej by wyglądało tak:


    I nie potrzeba wtedy biblioteki conio.h.

    Zauważyłem także że i main powinno coś zwracać.
  • REKLAMA
  • #5 9328783
    Gaatt
    Poziom 10  
    Posty: 52
    Oto kopia kodu:

    // Functions – przykład własnych funkcji
    #include <iostream>
    #include <conio.h>
    int PokazTekst()
    {
    std::cout << "Umiem juz pisac wlasne funkcje! :)" << std::endl;
    }


    int main()
    {
    PokazTekst();
    _getch();
    }

    Czy mógłby mi Pan tak to pozmieniać, aby wszystko do siebie pasowało. Ponieważ nie jestem doświadczonym użytkownikiem C++, prosiłbym bez dodatkowych komplikacji.
  • Pomocny post
    #6 9328802
    Jarosx9
    Poziom 35  
    Posty: 2785
    Pomógł: 265
    Ocena: 401
    Proszę:
    
    #include <iostream>
    
    void PokazTekst()
    {
    	std::cout << "Umiem juz pisac wlasne funkcje! :)" << std::endl;
    }
    
    
    int main()
    {
           PokazTekst();
           std::cin.get();
           return 0;
    }
    
    


    albo tak:

    
    #include <iostream>
    
    int PokazTekst()
    {
            std::cout << "Umiem juz pisac wlasne funkcje! :)" << std::endl;
            return 0;
    }
    
    
    int main()
    {
           PokazTekst();
           std::cin.get();
           return 0;
    }
    
    
  • #7 9328904
    Gaatt
    Poziom 10  
    Posty: 52
    Dziękuję! Problem rozwiązany.

Podsumowanie tematu

✨ Użytkownik zgłosił problem z kodem C++ z książki "Od zera do gier kodera", wskazując na błędy związane z typami zwracanymi przez funkcje. Odpowiedzi sugerowały użycie funkcji _getch() oraz zwrócenie wartości z funkcji main, co jest zgodne z normami C++. Użytkownik dostarczył kod, który został poprawiony przez innych uczestników dyskusji, proponując dwie wersje: jedna z funkcją void oraz druga z int, obie z użyciem std::cin.get() zamiast _getch(). Po wprowadzeniu poprawek problem został rozwiązany.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA