Einstieg in C++
-
Originalhanno schrieb:
Gleich nach der ersten Zeile kommt eine Fehlermeldung:
Es wär ganz hilfreich, wenn du das Programm dazu posten würdest
Muss ich erst festlegen mit welcher ISO-Norm ich arbeite?
Es gibt nur eine.
2.)
Gibt es eine Möglichkeit auf einem UNIX Compiler ein Programm zu schreiben das auf einem Copiler unter XP läuft?Sicher.
-
hi, das Programm heißt XCode.
Der Tipp mit der include-Datei war super. Danke
Jetzt nochmal zu den unterschiedlichen Compilern:
Wie läuft das denn?
Ich denke unterschiedliche Compiler vergeben unterschiedlich viel Speicherplatz bei der Vergabe von Variablen. Nur so als Beispiel. Oder stimmt das nicht?
Kann ich also auf MAC ein C++ Programm schreiben dass dann nachher auf XP läuft?
Muss ich daskonvertieren?
Ein paar mehr Infos wären super...
Danke vielmals
-
So stehts im Buch:
#include <iostream.h>
main()
{ int eingabe
cout <<"Hallo Steffi, gehst Du jetzt ins Bett";
cin >> eingabe;was ist da dran verkehrt?
main.cpp:3: ISO C++ forbids declaration of
main' with no type main.cpp:4: error: parse error before
<<' token
-
Originalhanno schrieb:
hi, das Programm heißt XCode.
Der Tipp mit der include-Datei war super. DankeNicht dass du den in den falschen Hals bekommst ... iostream.h ist die veraltete Form. In ISO-C++ gibts nur iostream (natürlich alles im Namensraum std).
Ich denke unterschiedliche Compiler vergeben unterschiedlich viel Speicherplatz bei der Vergabe von Variablen. Nur so als Beispiel. Oder stimmt das nicht?
Kann ich also auf MAC ein C++ Programm schreiben dass dann nachher auf XP läuft?
Muss ich daskonvertieren?Da muss man differenzieren. Mir scheint, du willst ein Programm, das man gleichermaßen auf dem Mac als auf auf Windows starten kann? Einfach so? Binärkompatibilität zwischen verschiedenen Systemen ist nur iselten gegeben (unter verschiedenen Unix-Arten manchmal, oder z.B. mithilfe von WINE Windows-Programme unter Linux). Schon die völlig unterschiedliche Prozessorarchitektur von Mac und PC bringt das zum Scheitern. Konvertieren ist nicht möglich.
Als nächst-schwächere Stufe wäre da ein Programm im Quelltext, dass du sowohl von einem Mac- als auch von einem Windows-Compiler übersetzen lassen kannst, so dass dann jeweils lauffähige Programme herauskommen. Das ist das, was man normalerweise unter Portabilität versteht. Das ist nicht ganz einfach zu erreichen, jedenfalls wenn man Betriebssystemfunktionen wie Netzwerkzugriff, Multithreading oder GUI benötigt.
Oder, was ich zuerst dachte, meinst du, dass du auf dem Mac ein Programm entwickelst, was ausschließlich unter Windows läuft? Dazu brauchst du einen sogenannten Cross-Compiler. Frag mich bitte nicht, wo man sowas kriegt, aber das gibt es
-
Originalhanno schrieb:
So stehts im Buch:
Ich glaube nicht, dass es exakt so da steht, da ist bestimmt auch der eine oder andere Abschreibfehler drin. Aber egal, Schritt für Schritt:
#include <iostream.h> Wie gesagt, iostream ohne .h ist heute angesagt.
main() main ist eine Funktion, und hat als solche einen Rückgabetyp. Der muss int sein, d.h. es muss so heißen: int main(). Das ist übrigens für den ersten Compilerfehler verantwortlich.
{ int eingabe hiernach fehlt ein Semikolon. Deshalb kommt auch der zweite Compilerfehler ... der Compiler merkt erst beim << Operator, das irgendwas nicht stimmen kann. Was genau, kann er nicht wissen.
Und am Ende fehlt noch eine Klammer zu: }
Zu der std:: Problematik: Die Namen der Standardbibliothek (cout, cin, endl, string, ofstream etc.) stehen im Namensraum std, und müssen daher mit std::cout, std::cin usw. angesprochen werden. Wenn das zu umständlich ist, schreibt man -- normalerweise direkt nach den #include-Anweisungen -- die "using-Direktive": using namespace std;, dann kann man wieder mit den nackten Namen cout usw. arbeiten.
-
Originalhanno schrieb:
hi, das Programm heißt XCode.
Der Tipp mit der include-Datei war super. Danke
Jetzt nochmal zu den unterschiedlichen Compilern:
Wie läuft das denn?
Ich denke unterschiedliche Compiler vergeben unterschiedlich viel Speicherplatz bei der Vergabe von Variablen. Nur so als Beispiel. Oder stimmt das nicht?
Kann ich also auf MAC ein C++ Programm schreiben dass dann nachher auf XP läuft?
Muss ich daskonvertieren?
Ein paar mehr Infos wären super...
Danke vielmalsServus OriHan,
willkommen im Land des Mac's, möge der Benutzerkomfort mit Dir sein
Also XCode ist eigentlich nur die IDE (ein Editor der verbesserte Funktionalität in Bezug zur Programmierung besitzt), darunter werkelt der GCC/G++ von GNU. Unter http://gcc.gnu.org/gcc-3.3/buildstat.html findest Du eine Übersicht von erfolgreichen Builds der GCC auf verschiednen Plattformen. Das unterschiedliche Compiler unterschiedliche große Variablen erstellen, halte ich für nen Gerücht. Die Größe der Variabel ist maschinenabhängig, d.h. beispielsweise ein Double ist auf einem 64 Bit Rechner größer als auf einem 32 Bit Rechner. Das hat aber nichts direkt mit dem Compiler zu tun...
Dein C/C++ Programm kannst Du schon auf XP laufen lassen, sobald es eine "Konsolenanwendung" ist, sprich "Dos Box". Sobald Du irgendwas mit Fenstern machen möchtest, geht das nicht mehr... da gehen Windows, Linux und Mac einfach zu unterschiedliche Wege... die "Logik" Deines Programms würde aber auf allen Plattformen funktionieren, die "GUI"/"Frontend" aber halt nicht... unter http://www.macuser.de bist Du sicherlich auch gut aufgehobenBei einer programmiertechnische Frage/Unterstützung bist Du "hier" in allerbesten Händen...
Grützi Winn
-
Originalhanno schrieb:
So stehts im Buch:
#include <iostream.h>
main()
{ int eingabe
cout <<"Hallo Steffi, gehst Du jetzt ins Bett";
cin >> eingabe;was ist da dran verkehrt?
main.cpp:3: ISO C++ forbids declaration of
main' with no type main.cpp:4: error: parse error before
<<' tokenWas ist das denn für ein Buch ???
Ich würde iostream als Header nehmen und dann mit std arbeiten. Da das auf die dauer zu unbequem ist, ständig std::cout etc. zu schreiben, machs doch so:#include <iostream> using namespace std; int main() { int eingabe; cout<<"Hallo Steffi, gehst Du jetzt ins Bett ?"; //Auweia cin>>eingabe; //Was soll man denn hier eingeben ? eine Zahl ??? return 0; }
Wobei ich den Sinn dieses Programms einfach nicht verstehe... Was soll man denn eingeben ? Vielleicht eine 1, wenn Steffi jetzt ins Bett geht, und eine 0, wenn Steffi nicht ins Bett geht ? Naja, egal...
Gruß
E-the-Real@Bashar: Upps, nicht gesehen, dass du zu namespace schon was gepostet hast.
-
Hallo,
Mann Mann ich musste schon lachen als ich dass gelesen habe.
Sorry dass ich so lange nix geschrieben hab.
Also, den IDE sollte ich aber schon benutzen oder?
Wie soll ich vorgehen. Das Programm muss auf Visual Studio .NET unter XP (kotz) laufen. Soll cih auf XCode schreiben, den Quellcode nach Visual Studio importieren, und dann nach Fehlern suchen? Oder gibt es eine elegantere Möglichkeit?
-
Originalhanno schrieb:
Oder gibt es eine elegantere Möglichkeit?
Ja, direkt unter XP schreiben
-
Hi ich will mich auch mal zu Wort melden
C/C++ Code:
#include <iostream>
using namespace std;
int main()
{ int eingabe;
cout<<"Hallo Steffi, gehst Du jetzt ins Bett ?"; //Auweia
cin>>eingabe; //Was soll man denn hier eingeben ? eine Zahl ???
return 0;
}Wobei ich den Sinn dieses Programms einfach nicht verstehe... Was soll man denn eingeben ? Vielleicht eine 1, wenn Steffi jetzt ins Bett geht, und eine 0, wenn Steffi nicht ins Bett geht ? Naja, egal...
Das cin>>eingabe soll glaub ich getchar() ersetzten. Damit das Proggie sich nicht wieder schließt.
Gruß Ich
-
Damit das Proggie sich nicht wieder schließt
omg :|
start doch einfach die kommandozeile wechsel in das richtige verzeichnis, und fuehr das programm dort aus. dann kanns auch gleich zuende sein (ohne getchar), und du siehst die ausgabe.zur portabilität: solange du dich an den standard haeltst und keine spezielle libs/apis verwendest (winapi, gtk, was auch immer), ist es kein problem. willst du portable grafik, wirds schon schwieriger