04. juli 2002 - 11:04
Der er
17 kommentarer og 3 løsninger
Bogmærke goto? C++
Hej jeg syntes jeg engang så i en bog at man kunne lave et slags bogmærke i koden og med goto tror jeg det var, kunne man gå til bogmærket! tror det hed label eller sådan noget! Nogen der lige kan komme på hvad det er?
Annonceindlæg fra Conscia
Har i nogle ideer til hvordan jeg kan kalde main(); inde i main? jeg skal nemlig have det til at køre uafbrudt!
Kan du ikke bare lave en while(true){ og så sætte kode herind }
goto er egentlig noget C skrammel (undskyld udtrykket), hvis du programmerer C++, bør du egentlig ikke bruge den..! int main() { while(true) { // Gør hvad du skal... } }
//--------------------------------------------------------------------------- #include <vcl.h> #include <conio.h> #include <iostream.h> #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused int main(void) { char lodret , vandret , tast; for (lodret; lodret = '0'; lodret--) cout << "_"; for (vandret; lodret = '0'; lodret--) cout << endl; cin >> tast; if (tast == 'w') { lodret++; } else if (tast == 's') { lodret--; } else if (tast == 'a') { vandret--; } else if (tast == 'd') { lodret++; } system("cls"); main(); return 0; }
Ved ikke om i kan hjælpe? sætter pointene op! jeg skal få brugeren til enten at taste w,a,s,d! og så på den måde få markøren til at rykke sig!
der er en del fejl... men jeg skal have den til at starte forfra når den har kørt det?
så markøren rykker sig når man trykker... i må helst ikke lave meget om på den! jeg er rimlig ny med c++! så de ting der er hvad jeg forstår!
//--------------------------------------------------------------------------- #include <vcl.h> #include <conio.h> #include <iostream.h> #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused int main(void) { char lodret , vandret , tast; for (lodret; lodret >= '0'; lodret--) cout << "_"; for (vandret; vandret >= '0'; vandret--) cout << endl; cin >> tast; if (tast == 'w') { lodret++; } else if (tast == 's') { lodret--; } else if (tast == 'a') { vandret--; } else if (tast == 'd') { lodret++; } system("cls"); main(); return 0; } //(sådan her uden fejl på)
#pragma argsused void main(void) { while(true) { char lodret , vandret , tast; for (lodret; lodret = '0'; lodret--) cout << "_"; for (vandret; lodret = '0'; lodret--) cout << endl; cin >> tast; if (tast == 'w') { lodret++; } else if (tast == 's') { lodret--; } else if (tast == 'a') { vandret--; } else if (tast == 'd') { lodret++; } system("cls"); } }
04. juli 2002 - 11:21
#10
int main(void) { char lodret=0 , vandret=0 , tast; while(true) { for (lodret; lodret = '0'; lodret--) cout << "_"; for (vandret; lodret = '0'; lodret--) cout << endl; cin >> tast; if (tast == 'w') { lodret++; } else if (tast == 's') { lodret--; } else if (tast == 'a') { vandret--; } else if (tast == 'd') { lodret++; } system("cls"); } return 0; }
04. juli 2002 - 11:22
#11
Jeg har lavet den om til en void da du ikke vil returnere noget, indrykkene virkede ikke med tab, derfor ser det lidt rodet ud ;)
04. juli 2002 - 11:23
#12
Ups char lodret=0 , vandret=0 , tast; skal udenfor while løkken som jpk gør
04. juli 2002 - 11:23
#13
Tak nu virker den del da =)
04. juli 2002 - 11:24
#14
Ok! resten var ikke en succes ;) må se om jeg kan få det til at virke!
04. juli 2002 - 11:25
#15
Var det ikke en ide at lave det om til en switch?
04. juli 2002 - 11:27
#16
Aner det ik? ;) som sagt jeg er ny!
04. juli 2002 - 11:28
#17
//sådan ser det ud nu: //--------------------------------------------------------------------------- #include <vcl.h> #include <conio.h> #include <iostream.h> #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused int main(void) { char lodret = 0, vandret = 0, tast; while(true) { for (lodret; lodret <= '0'; lodret--) cout << "_"; for (vandret; vandret <= '0'; vandret--) cout << endl; cin >> tast; if (tast == 'w') { lodret++; } else if (tast == 's') { lodret--; } else if (tast == 'a') { vandret--; } else if (tast == 'd') { lodret++; } system("cls"); } return 0; } //---------------------------------------------------------------------------
04. juli 2002 - 11:39
#18
#pragma argsused int main(void) { char lodret = 0, vandret = 0, tast; while(true) { for (lodret; lodret <= '0'; lodret--) cout << "_"; for (vandret; vandret <= '0'; vandret--) cout << endl; cin >> tast; switch(tast) { case 'w': case 'W': lodret++; break; . . . default: cout << "\nForkert bogstav er indtastet"; break; } system("cls"); } return 0; }
04. juli 2002 - 11:42
#19
Puha - det var grimt. Hvis du bare vil flytte rundt på din cursor, som brug gotoxy() funktionen - det er ganske almindelig standard C: #include <conio.h> int main(void) { int x = 0, y = 0; int tast; clrscr(); gotoxy(x,y); while ((tast = getch()) != 0x1B) // ESC stopper loopet { switxh (tast) { case 'w' : // Flyt linie op - hop til sidste line fra linie 1. if (--y < 0) y = 23; break; case 's' : // Flyt linie ned - hop til første linie fra linie 23. if (++y > 23) Y = 0; break; case 'a' : // Flyt til venstre - hop til sidste tegn fra første tegn. if (--x < 0) x = 79; break; case 's' : // Flyt til højre - hop til første tegn fra sidste tegn. if (++x > 79) x = 0; break; }; if (tast == 0x1B) continue; // Flyt cursoren og kør en tur mere. gotoxy(x, y); }; return 0; } // main
04. juli 2002 - 11:45
#20
Jeg kigger på det ;) tak til jer alle!!
Kurser inden for grundlæggende programmering