Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Borland C vs. Dev Cpp (https://www.delphipraxis.net/32094-borland-c-vs-dev-cpp.html)

Corelgott 18. Okt 2004 16:43


Borland C vs. Dev Cpp
 
Hi @ all,

ich hätte da gerne mal ne Frage..

ich lerne jetzt in der fh c.

Da haben die nen alten schimmeligen Borland Complier (das soll jetzt nicht heißen, das cpp schlecht ist oder so... bloß die version ist uhr alt!) Zuhause hab ich mir jetzt mal dev cpp geladen.

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.

Wo liegen denn nun genau die genauen Unterschiede zwischen Borland und "dem Rest der Welt" oder dem rest der Standart-Welt und Borland?

Wie sieht das denn nu aus?

thx
Corelgott

OregonGhost 18. Okt 2004 17:02

Re: Borland C vs. Dev Cpp
 
Du lernst in der FH C und darfst eine Funktion wie clrscr() benutzen? Na dann gute Nacht, Marie ;c)

clrscr ist nicht ISO-C und daher natürlich nicht in allen Compilern umgesetzt.
Der Unterschied zwischen den Compilern liegt einerseits in einer Menge proprietärer Erweiterungen von Borland und in der Unterstützung veralteter Bibliotheken wie zum Beispiel der alten DOS-Routinen.

Halte dich an ANSI/ISO-C/C++ und du wirst keine Probleme beim Wechsel zwischen Compilern haben.
(Alles, was nicht im Standard definiert ist, ist auch nicht erlaubt (c; )
Im Zweifel kannst du dich an den Kernighan & Ritchie (für C) oder den Stroustroup (für C++, der war übrigens neulich mal Gastdozent an meiner FH :roll: ) halten. Würde mich eigentlich wundern, wenn dein Dozent dir nicht das jeweilige Buch empfehlen würde.

Stevie 18. Okt 2004 17:09

Re: Borland C vs. Dev Cpp
 
Clrscr ist doch Pascal, oder??? Die Borländer wieder... :roll:
Benutz doch mal system("cls")

jbg 18. Okt 2004 17:21

Re: Borland C vs. Dev Cpp
 
Zitat:

Zitat von Stevie
system("cls")

Und unter Linux? Solle dann etwa
Code:
#ifdef LINUX
system("clear");
#else
system("cls");
#endif
machen?

Tubos 18. Okt 2004 20:58

Re: Borland C vs. Dev Cpp
 
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... :stupid:

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

Stevie 19. Okt 2004 07:04

Re: Borland C vs. Dev Cpp
 
Zitat:

Zitat von jbg
Zitat:

Zitat von Stevie
system("cls")

Und unter Linux? Solle dann etwa
Code:
#ifdef LINUX
system("clear");
#else
system("cls");
#endif
machen?

Warum denn nicht?? Pack's doch von mir aus in eine Funktion, dann steht im Programm nur der Aufruf.. ;-)

Corelgott 19. Okt 2004 11:05

Re: Borland C vs. Dev Cpp
 
Hi,

wow danke für die ganzen antworten.... So wie es mir scheint sind die untersachiede zwischen boarland c und "rest der welt c" gar nicht so extrem. So ein paar konsolen sache wie z.b. textcolor usw. Das ist schon mal sehr ermutigend!

Wegen des compilers bzw. ide Vielen dank für die entpfehlungen! Also ich hatte mich jetzt erst mal ein bischen mit devcpp angefreundet werde mich aber nochmal mit vc++ beschäftigen... :-) kann ja nie schaden ^^

Falls ihr noch ein paar empfehlungen z.b. bücher toturials usw. habt: Immer her damit!

thx @ all
Corelgott


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz