Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

25.07.2009, 14:38

Cursor in die erste Zeile verschieben

Hi,
Gibt es eine Möglichkeit wenn man etwas in die Konsole geschrieben hat den Cursor wieder in die erste Zeile und Spalte zu schieben?
Metal ist keine Musik sondern eine Religion.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

25.07.2009, 14:53

Ich sagte ja, dass es ohne WinAPI schwer wird. ;)

http://msdn.microsoft.com/en-us/library/ms686025%28VS.85%29.aspx

3

25.07.2009, 15:30

Ich habe zum Test mal ein kleines Prog geschrieben:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <windows.h>
#include <iostream>

using namespace std;

void gotoxy( int column, int line )
  {
  COORD coord;
  coord.X = column;
  coord.Y = line;
  SetConsoleCursorPosition(
    GetStdHandle( STD_OUTPUT_HANDLE ),
    coord
    );
  }


int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,char*pcCmdLine,int iShowCmd)
{
    gotoxy(4,7);

    cin.get();
    return 0;
} 


warum funktioniert das nicht? Warum erstellts kein Konsolenfenster?
Metal ist keine Musik sondern eine Religion.

Nebulak

Frischling

Beiträge: 9

Wohnort: Karlsruhe

Beruf: Brennschneider

  • Private Nachricht senden

4

25.07.2009, 15:38

Wegen WinMain vielleicht, mach mal

C-/C++-Quelltext

1
2
3
4
5
void main(void)
{
     gotoxy(4, 7);
     cin.get();
}


mfg
mfg Nebulak

5

25.07.2009, 15:42

Jup. Es geht. Ich benutze aber lieber

C-/C++-Quelltext

1
int main()

reine Formsache ;)
Metal ist keine Musik sondern eine Religion.

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

6

25.07.2009, 16:50

Nein es ist eben nicht reine Formsache!

int main(...) ist die Einstiegsprozedur für Konsolenanwendungen, dort wird i.d.R. automatisch ein Konsolenfenster erstellt. Mit

C-/C++-Quelltext

1
2
3
4
 ::SetConsoleCursorPosition(
    GetStdHandle( STD_OUTPUT_HANDLE ),
    coord
    ); 


holst du dir dieses Fenster (GetStdHandle( STD_OUTPUT_HANDLE )) und setzt die Koordinaten des "Cursors".

WinMain(...) ist die Einstiegsfunktion unter Windows (Bei Voreinstellung), dort wird i.d.R. kein Konsolenfenster erzeugt.

Wenn jemand weitere Funktionen sucht, sollte er mal nach conio.h für Visual Studio im Netz suchen, bei Bedarf kann ich auch noch einige Funktionen hier mal posten. Wir hatten damals von einem Mitglied eine schöne Collection, die ist jedoch mittlerweile gelöscht wurden.

7

25.07.2009, 17:48

Ihm ging es mit seinem letzten Post um
int main()
und
void main(),
nicht WinMain ;)

Wobei void main() streng genommen falsch ist.

the[V]oid

Alter Hase

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

8

25.07.2009, 17:48

Es ging glaub ich um die Schreibweise der main, nicht um die WinMain o.O"
<< an dieser Stelle ist eine Signatur verstorben >>

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

9

25.07.2009, 17:53

Zitat von »"defaultplayer^^


Wobei void main() streng genommen falsch ist.


Ganz streng genommen ist void main() nicht falsch, sondern nur unvorhersehbar. :p

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

10

25.07.2009, 17:55

C-/C++-Quelltext

1
void main( void )

Wenn ich das schon lese! ;)

Also wenigstens doch:

C-/C++-Quelltext

1
int main()


Aber am besten:

C-/C++-Quelltext

1
int main( int argc, char* argv[] )

Werbeanzeige