Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C++ = C++ ? (https://www.delphipraxis.net/90097-c-%3D-c.html)

ebber 11. Apr 2007 15:57


C++ = C++ ?
 
Hallo

wollte mir eigentlich C++ ein wenig anschauen mit Visual Studio.
Ich habe mir jetzt mehrer Tutorials angesehen aber in allen steht was von

Delphi-Quellcode:

#include <iostream.h>

oder

cout << "Hello World";
Wenn ich das aber in Visual Studio eintippe will das alles nicht funktionieren.


Ich habe jetzt das gefunden was funktioniert :

Delphi-Quellcode:

#include "iostream" using namespace std;

printf("Hello World");
Was ist jetzt da der unterschied ? Bei beidem steht ja C++ ? :wiejetzt:

MfG

SirThornberry 11. Apr 2007 16:03

Re: C++ = C++ ?
 
bei dem einen wird die Funktion printf aufgerufen bei der anderen wird mit dem "<<" operator gearbeitet.

Der_Unwissende 11. Apr 2007 16:24

Re: C++ = C++ ?
 
Zitat:

Zitat von ebber
Delphi-Quellcode:

#include <iostream.h>

oder

cout << "Hello World";
Wenn ich das aber in Visual Studio eintippe will das alles nicht funktionieren.

Hi,
erstmal kurz zu C-Code, wenn Du das Delphi durch C ersetzt, bekommst Du auch für C das richtige Highlighting :wink:

Was Dein Problem angeht, so hast Du hier bekanntschaft mit dem Namensraum gemacht. Die Frage die sich hier stellt ist, welches VS Du verwendest, ab einer bestimmten Version (kenne ich nicht aus dem Kopf) musst Du die Namensräume immer angeben. Also entweder

Code:
std::cout << "Hello World";
oder eben

Code:
#include "iostream" using namespace std;

// ...
cout << "Hello World"
Beim Include liegt der wichtige Unterschied darin, wo die Datei liegt, die Du einbinden möchtest. Liegt sie im gleichen Verzeichnis wie Dein Programm, verwendet man die Anführungszeichen. Liegt sie im Suchpfad des Compilers, werden die spitzen Klammern verwendet. Da .h kann/muss man (afaik) auch erst ab einer bestimmten Version weglassen. Zudem musst Du aufpassen, ob Du eine managed C++ Version verwendest (also das .net Pendant), da dürfte es einige Änderungen geben, die von den Standard C++ Tutorials abweichen!

Nebenbei um die Frage mal ganz klar zu beantworten C++ != C++
Die sind nicht immer gleich, je nach Compiler wirst Du schnell ein paar (kleine) Unterschiede finden. Das meiste davon betrifft natürlich nicht direkt die Sprache, sondern eher die mitgelieferten/verfügbaren Bibliotheken, die Arbeit mit make-Files usw.

Gruß Der Unwissende

[add]
Ach ja, printf vs. cout, ich glaube printf war die ältere Variante. Jedenfalls steht printf für die Formatierte Ausgabe, hier gibt es ziemlich starke Parallelen zu format von Delphi. Du gibst dabei einen String mit Platzhaltern an und übergibst die Argumente, die an dieser Stelle eingefügt werden sollen:
Code:
printf("Dies ist ein String, in den ein String %s und ein Integer %d eingefügt wird", "BLUBB", 10);
// sollte "Dies ist ein String, in den ein String BLUBB und ein Integer 10 eingefügt wird" ausgeben
// Das gleiche mit cout hätte wohl die Form
cout << "Dies ist ein String, in den ein String" << "BLUBB" << "und ein Integer" << 10 << "eingefügt wird"
// bei cout bin ich mir nicht ganz sicher, zu lange nicht mit C++ gearbeitet, also lieber nicht glauben!
[/add]

ebber 11. Apr 2007 16:39

Re: C++ = C++ ?
 
Gut, Danke.

Ich hab das mit VS 2005 gemacht. In den ganzen Tutorials steht aber das oben erwähnte. Gibts vielleicht auch ein Einführungstutorial dafür ?

MfG

Der_Unwissende 11. Apr 2007 16:46

Re: C++ = C++ ?
 
Zitat:

Zitat von ebber
Ich hab das mit VS 2005 gemacht. In den ganzen Tutorials steht aber das oben erwähnte. Gibts vielleicht auch ein Einführungstutorial dafür ?

Na das Schlimmste hast Du schon geschafft, sehr viel mehr Fallen gibt es auf dem Weg zum "Hello World!" nicht und die meisten Tutorials fangen damit an. Bei den weiteren Beispielen weißt Du ja schon bescheid. Beim Import musst Du im Zweifel immer schauen, ob Du ein .h angeben musst oder nicht. An sich wirst Du hier (wahrscheinlich) etwas in der Form "Header" finden, wenn es um Bibliotheksdateien geht und "Header.h" für die, die Du selbst geschrieben hast, bzw. die unter Header im Projekt angezeigt werden.
Wenn Du das berücksichtigst (ist ja nicht so kompliziert, oder?) dann solltest Du den Rest der Tutorials ganz gut verwenden können. Die meisten fangen eben (wie gesagt) bei "Hello World" an und erklären dann nach und nach die Sprache (Datentypen, Kontrollstrukturen, Fehlerbehandlung, Klassen, ...)

Torpedo 11. Apr 2007 16:51

Re: C++ = C++ ?
 
cout ist C++, printf funktioniert auch unter C.

Natürlich gibt es viele Arten so ein einfachen Programm wie Hello World zu programmieren.

Hier sind mal die, die ich für am "normalsten" halte:

C++:
Code:
#include <iostream>
using namespace std;

int main() {
   cout<<"Hello World!"<<endl;
   return 0;
}
C:
Code:
#include <stdio.h>

int main() {
   printf("Hello World!");
   return 0;
}

jmit 11. Apr 2007 17:30

Re: C++ = C++ ?
 
Hallo,

Zitat:

Zitat von ebber

..Gibts vielleicht auch ein Einführungstutorial dafür ?

MfG

Ein spezielles Tutorial für VS2005 kenne ich nicht, aber ich würde auch mit einem allgemeinem C++ Tutorial beginnen.
Zum Suchen einfach einmal Google bemühen.

Gruß Jörg

Muetze1 11. Apr 2007 21:33

Re: C++ = C++ ?
 
Wieso wird hier mit Kanonen auf Spatzen geschossen? printf() ist zum formatierten Ausgeben von Werten in einem String. Wenn es hier um die reine Stringausgabe geht, dann muss man doch nicht gleich mit dem grossen Holzhammer kommen (wobei hier nichtmal eine Variable ausgegeben wird) sondern nutzt lieber eine einfachere - bessere geeignete Funktion (z.B. puts()).

hsg 12. Apr 2007 06:35

Re: C++ = C++ ?
 
Zitat:

Zitat von Der_Unwissende
Nebenbei um die Frage mal ganz klar zu beantworten C++ != C++
Die sind nicht immer gleich, je nach Compiler wirst Du schnell ein paar (kleine) Unterschiede finden. Das meiste davon betrifft natürlich nicht direkt die Sprache, sondern eher die mitgelieferten/verfügbaren Bibliotheken, die Arbeit mit make-Files usw.

Gruß Der Unwissende

Die Unterschiede betreffen (leider) auch oft die Sprache selber, so ist z.B. folgender Code unter BCB6 korrekt:
Code:
for (int i=1; i<10; i++) {
....}

for (int i=2; i<100; i++) {
....
}
Dasselbe unter VSC++ funktioniert nicht, da in der 2. for-Schleife das i bereits definiert ist.

So war es zumindest, als ich noch C++ Code schreiben durfte........

SirThornberry 12. Apr 2007 07:49

Re: C++ = C++ ?
 
sowas macht man ja auch nicht (eine Variable 2 mal declarieren). Selbst wenn der Compiler das unterstützt sollte man sich das gar nicht erst angewöhnen, schließlich entbehrt das jeder logic.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:50 Uhr.
Seite 1 von 3  1 23      

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