Avatar billede nicidem Nybegynder
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?
Avatar billede nicidem Nybegynder
04. juli 2002 - 11:06 #1
Har i nogle ideer til hvordan jeg kan kalde main(); inde i main?
jeg skal nemlig have det til at køre uafbrudt!
Avatar billede nejmann Nybegynder
04. juli 2002 - 11:12 #2
Kan du ikke bare lave en

while(true){ og så sætte kode herind }
Avatar billede jpk Nybegynder
04. juli 2002 - 11:13 #3
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...
  }
}
Avatar billede nicidem Nybegynder
04. juli 2002 - 11:14 #4
//---------------------------------------------------------------------------

#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;
}
Avatar billede nicidem Nybegynder
04. juli 2002 - 11:15 #5
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!
Avatar billede nicidem Nybegynder
04. juli 2002 - 11:17 #6
der er en del fejl...

men jeg skal have den til at starte forfra når den har kørt det?
Avatar billede nicidem Nybegynder
04. juli 2002 - 11:18 #7
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!
Avatar billede nicidem Nybegynder
04. juli 2002 - 11:19 #8
//---------------------------------------------------------------------------

#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å)
Avatar billede nejmann Nybegynder
04. juli 2002 - 11:19 #9
#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");
}
}
Avatar billede jpk Nybegynder
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;
}
Avatar billede nejmann Nybegynder
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 ;)
Avatar billede nejmann Nybegynder
04. juli 2002 - 11:23 #12
Ups

char lodret=0 , vandret=0 , tast;

skal udenfor while løkken som jpk gør
Avatar billede nicidem Nybegynder
04. juli 2002 - 11:23 #13
Tak nu virker den del da =)
Avatar billede nicidem Nybegynder
04. juli 2002 - 11:24 #14
Ok! resten var ikke en succes ;)
må se om jeg kan få det til at virke!
Avatar billede nejmann Nybegynder
04. juli 2002 - 11:25 #15
Var det ikke en ide at lave det om til en switch?
Avatar billede nicidem Nybegynder
04. juli 2002 - 11:27 #16
Aner det ik? ;)
som sagt jeg er ny!
Avatar billede nicidem Nybegynder
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;
}
//---------------------------------------------------------------------------
Avatar billede nejmann Nybegynder
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;
}
Avatar billede soepro Nybegynder
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
Avatar billede nicidem Nybegynder
04. juli 2002 - 11:45 #20
Jeg kigger på det ;)
tak til jer alle!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester