Zitat:
Aber da stoße ich auf ein paar unstimmitgkeiten. z.B. bei dem borland funzt der Befehl: clrscr(); wenn ich das proggie auf meinem compiler lass glotzt mich der nur doof an.
Diese Funktionen kann man sehr leicht nachprogrammieren.
Nun gut, ich poste mal meine Version davon...
Code:
/*
Die wichtigsten Funktionen meiner Konsolen-Headerdatei "text.h"
(c) Lukas Tr. / Tubos 2004
*/
// Die folgenden Bezeichnungen sind zur Vereinfachung der Farbeinstellung
#define red FOREGROUND_RED
#define green FOREGROUND_GREEN
#define blue FOREGROUND_BLUE
#define white FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_GREEN|FOREGROUND_INTENSITY
#define gray FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_GREEN
#define lightred FOREGROUND_RED|FOREGROUND_INTENSITY
#define lightgreen FOREGROUND_GREEN|FOREGROUND_INTENSITY
#define lightblue FOREGROUND_BLUE|FOREGROUND_INTENSITY
#define black 0
#define bgblue BACKGROUND_BLUE
#define bggreen BACKGROUND_GREEN
#define bgred BACKGROUND_RED
#define bgwhite BACKGROUND_RED|BACKGROUND_BLUE|BACKGROUND_GREEN|BACKGROUND_INTENSITY
#define bggray BACKGROUND_RED|BACKGROUND_BLUE|BACKGROUND_GREEN
#define bglightred BACKGROUND_RED|BACKGROUND_INTENSITY
#define bglightgreen BACKGROUND_GREEN|BACKGROUND_INTENSITY
#define bglightblue BACKGROUND_BLUE|BACKGROUND_INTENSITY
#define bgblack 0
int MaxX(void)
{
CONSOLE_SCREEN_BUFFER_INFO info;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),&info);
return info.srWindow.Right;
}
int MaxY(void)
{
CONSOLE_SCREEN_BUFFER_INFO info;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),&info);
return info.srWindow.Bottom;
}
void ClrScr(void)
{
COORD pos;
unsigned long t;
pos.X=0;
pos.Y=0;
FillConsoleOutputCharacter(GetStdHandle(STD_OUTPUT_HANDLE),' ',MaxX()*MaxY(),pos,&t); // alles mit leerzeichen vollschreiben
FillConsoleOutputAttribute(GetStdHandle(STD_OUTPUT_HANDLE),bgblack,MaxX()*MaxY(),pos,&t); // Alle Farbinformationen löschen
gotoxy(0,0);
}
void TextColor(WORD farbe)
// Setzt die Farbe (Text und Hintergrund!!) auf den übergebenen wert
// Beispiel: TextColor(green | bgwhite) ergibt grün auf weißem hintergrund
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),farbe);
}
void gotoxy(int x, int y)
{
COORD pos;
pos.X=x;
pos.Y=y;
if (!SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos)) printf("Fehler bei gotoxy (%d/%d)\n",x,y);
}
Ich habe bereits mehrere C++-Compiler probiert (Dev-Cpp, Visual C++, C++Builder), aber ich finde dass Microsoft Visual C++ (im Moment arbeite ich mit der 6.0er) der Beste ist.
Konsolenfunktionen programmiere ich nach und VC++ ist einfach komfortabler.
Meine Antwort auf die ursprüngliche Frage: weder noch...verwende Visual C++.
[EDIT]
Zitat:
Und unter Linux? Solle dann etwa
Code:
#ifdef LINUX
system("clear");
#else
system("
cls");
#endif
machen?
Mein Code funktioniert nur unter Windows.
Ich programmiere im Moment auch nur für Windows.[/EDIT]
[EDIT2]Mehrere Fehler im obigen Code korrigiert[/EDIT2]
mfg. Tubos