Skocz do zawartości

c++ problem's


Rekomendowane odpowiedzi

Opublikowano

Robie c o ś w C++ :lol: . Dlaczego w tym kawałku

#include <dos.h>
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>

main()
{
 int score,x,y,time;
 x=7;
 y=10;
 time=300;
 do
 {
 gotoxy(5,5);
 cprintf("X");
 gotoxy(x,y);
 cprintf("Y");
 }
 while
 (getch();)
}

wyskakuje mi błąd:

21 main.cpp  parse error before `;'

?

Opublikowano

Dzięks, ten błąd już nie wyskakuje ale mam jeszcze jeden w linkers:

d:\overlord\main.o(.text+0x2c):main.cpp: undefined reference to `gotoxy'
d:\overlord\main.o(.text+0x4f):main.cpp: undefined reference to `gotoxy'

Chyba trzeba dać include cośtam ale nie pamiętam co :(

  • Filar Społeczności
Opublikowano

Javy? I BARDZO DOBRZE. Większe będziesz miał korzyści z Javy niż z C++. Twoja szkoła ma u mnie plusa i rekomendację serwisu gmclan.org ;)

Opublikowano

Znalazłem błąd, zamiast conio.h >> conio.c

U mnie lekcja informatyki wygląda tak że na co 2 lekcji gramy w half-lifa ;)

normalnie robimy coś w c++

Opublikowano

Tymon jak moja xD kolesie nie wiedzą ile cd zajmujze xD

mniach mniach

też mam problem z deva-chce zakomplikować(nawet example) i pisze,że nie umi znaleść make .Może ktoś helpnie? :(

Opublikowano (edytowane)

Mam jeszcze 1 błąd, tym razem kod duższy:

#include <conio.c>
#include <conio.h>

main()
{
 int score,x,y,move;
 unsigned char znak;
 x=7;
 y=10;
 move=30;
 do
 {
   gotoxy(5,5);
   cprintf("X");
   gotoxy(x,y);
   cprintf("Y");
   if (move=30)
   {
     if (kbhit())
     {
     znak = (unsigned char) getch();
     switch(znak)
       {
       case 75:
         y-1;
         break;
       case 77:
         y+1;
         break;
       case 80:
         x+1;
         break;
       case 72:
         x-1;
         break;
       }
     move=0;
     }
   }
   else
   {
     move++;
   }
 }
 while
 (getch());
}

A błąd:

24 main.cpp
implicit declaration of function `int kbhit(...)'

Edytowane przez radSun
  • Filar Społeczności
Opublikowano

Nigdy nie słyszałem, żeby taka funkcja jak kbhit istniała w bibliotece conio, więc wyguglałem to:

Prototype: int kbhit(void);

Header File: conio.h

Explanation: This function is not defined as part of the ANSI C/C++ standard. It is generally used by Borland's family of compilers. It returns a non-zero integer if a key is in the keyboard buffer. It will not wait for a key to be pressed.

Szybko na polski. Funkcja ta nie jest częścią standardu ANSI C/C++ i jest głównie używana w kompilatorach od Borland'a.

 

Jakiego kompilatora używasz? :]

 

Poza tym czemu robisz include pliku conio.c? Powinno być tylko conio.h

  • 3 tygodnie później...
Opublikowano

Skoro mam nie pytać na shotboxie to zapytam na formu :lol2:

Mam taki oto kod:

string czynnosc;
cout<<"Komenda: ";
cin>>czynnosc;
switch (czynnosc)
{
 case "w": cout<<"Ruch w gore"; break;
 case "s": cout<<"Ruch w dol"; break;
 case "a": cout<<"Ruch w lewo"; break;
 case "d": cout<<"Ruch w prawo"; break;
 default: cout<<"Nieznana komenda!"; break;
}
getch();

Oczywiście jak to bywa w moich problemach wyskakuje błąd:

switch quantity not an integer
case label `"w"' does not reduce to an integer constant
break statement not within loop or switch
...

Mam pytanie czy w switch można używać wyrazów?

Opublikowano

Po pierwsze: nie case "w" tylko case 'w'.

Po drugie: nie prościej zamiast stringa dać chara?

Według mnie to powinno wyglądać tak:

char czynnosc;
cout<<"Komenda: ";
cin>>czynnosc;
switch (czynnosc)
{
case 'w': cout<<"Ruch w gore"; break;
case 's': cout<<"Ruch w dol"; break;
case 'a': cout<<"Ruch w lewo"; break;
case 'd': cout<<"Ruch w prawo"; break;
default: cout<<"Nieznana komenda!"; break;
}
getch();

Opublikowano

Maximal@ " i ' to praktycznie to samo dla kompilatora :]

 

char czynnosc;
cout<<"Komenda: ";
cin>>czynnosc;
switch (czynnosc)
{
case 'w' : cout << "Ruch w gore"; break;
case 's' : cout << "Ruch w dol"; break;
case 'a' : cout << "Ruch w lewo"; break;
case 'd' : cout << "Ruch w prawo"; break;
default : cout << "Nieznana komenda!";
}
getch();

Mi działa i po default : instrukcja; nie potrzeba break;

  • 3 tygodnie później...
Opublikowano

Mam kolejny problem. :(

 

Kod:

enum POLE{ P_PUSTE=C_PUSTE,
          P_MUR=C_MUR,
          P_GRACZ=C_GRACZ};
enum STATUS{S_MENU,S_GRA};
enum COS{ C_PUSTE=" ",
         C_MUR="O",
         C_GRACZ="X"};

Błąd:

d:\overlord\jkjk.cpp:6: `C_PUSTE' was not declared in this scope
d:\overlord\jkjk.cpp:6: enumerator value for `P_PUSTE' not integer constant
d:\overlord\jkjk.cpp:7: `C_MUR' was not declared in this scope
d:\overlord\jkjk.cpp:7: enumerator value for `P_MUR' not integer constant
d:\overlord\jkjk.cpp:8: `C_GRACZ' was not declared in this scope
d:\overlord\jkjk.cpp:8: enumerator value for `P_GRACZ' not integer constant
d:\overlord\jkjk.cpp:10: enumerator value for `C_PUSTE' not integer constant
d:\overlord\jkjk.cpp:11: enumerator value for `C_MUR' not integer constant
d:\overlord\jkjk.cpp:12: enumerator value for `C_GRACZ' not integer constant

Wie ktoś w czym błąd?

Opublikowano

Owszem, w Pascalu i pochodnych trzeba zadeklarować zmienne. Raport błędów w tym skrypcie najwyraźniej mówi o tym, że ich nie zadeklarowałeś. Nie pamiętam, ale wydaje mi się, że trzeba deklarować zmienne.

A tak na marginesie... dość dużo tutaj błędnych skryptów dawałeś... Ciekawi mnie, co to za program, który piszesz.

  • 4 miesiące temu...
Opublikowano
Błąd:

d:\overlord\jkjk.cpp:6: `C_PUSTE' was not declared in this scope
d:\overlord\jkjk.cpp:6: enumerator value for `P_PUSTE' not integer constant
d:\overlord\jkjk.cpp:7: `C_MUR' was not declared in this scope
d:\overlord\jkjk.cpp:7: enumerator value for `P_MUR' not integer constant
d:\overlord\jkjk.cpp:8: `C_GRACZ' was not declared in this scope
d:\overlord\jkjk.cpp:8: enumerator value for `P_GRACZ' not integer constant
d:\overlord\jkjk.cpp:10: enumerator value for `C_PUSTE' not integer constant
d:\overlord\jkjk.cpp:11: enumerator value for `C_MUR' not integer constant
d:\overlord\jkjk.cpp:12: enumerator value for `C_GRACZ' not integer constant

Wie ktoś w czym błąd?

 

nie jestem pewien ale masz blad ze wart nie jest integer, a z tego co ja sie orientuje do enum mozna przypisac liczby, znakow nie mozna ...

 

Kod:

enum POLE{ P_PUSTE=C_PUSTE,
           P_MUR=C_MUR,
           P_GRACZ=C_GRACZ};
enum STATUS{S_MENU,S_GRA};
enum COS{ C_PUSTE=" ",
          C_MUR="O",
          C_GRACZ="X"};

 

w pierwszych liniach wartosci sa jeszcze nie znane bo wprowadziles je pozniej, a do tego C_MUR i C_GRASZ maja przypisane znaki

 

enum COS{ C_PUSTE=" ",
          C_MUR="1",
          C_GRACZ="2"};
enum POLE{ P_PUSTE=C_PUSTE,
           P_MUR=C_MUR,
           P_GRACZ=C_GRACZ};

 

sproboj w tej kolejnosci, a wstawianie pozniej O i X rozwiaz w programie zaleznie czy 1 czy 2,

ps. tak mi sie wydaje, pewnosci nigdy nie ma ;)

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...