Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » C/C++

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
28.05.2008, 15:33 Uhr
Randy



Hallo!Ich habe bisher nur C/C++ Theorie gelernt und möchte jetzt mal ein paar Tests in der Praxis versuchen.Also die Syntax habe ich compiliert und das wars dann auch schon!Ich brauch eine Vorlage die mir folgendes genau beschreibt.Kann ich nach dem kompilieren /**/ einfach weglasse und sofort #include Direktive aufrufen ?Oder ob bei namespace std ein Eintrag erforderlich ist?Selbes gilt für die () in der int main Funktion.anke für alle Tipps.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.05.2008, 15:42 Uhr
öni



gib doch mal ein Code-Beispiel.

Aber wenn du beim compilieren keine Fehler hast dürfte das gut gehen zumindest bei den Sachen die du beschreibst.

Edit:

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

int main()
{

cout<<"Hallo Welt";
getchar();
return 0;
}

Das dürfte funktionieren wenn keine fehler das ist und hallo welt ausgeben.

Dieser Post wurde am 28.05.2008 um 16:09 Uhr von öni editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.05.2008, 16:26 Uhr
0xdeadbeef
Gott
(Operator)


Du hast keine Garantie, dass "getchar" in iostream ist, laut Standard brauchst du dafür

C++:
#include <csdtio>


...aber da wir C-Legacy-Funktionen eh nicht wirklich mögen, benutzen wir doch lieber

C++:
cin.get()


...oder benutzen eine vernünftige IDE mit integrierter Konsole, oder bringen unserer IDE bei, das Fenster nicht gleich zu schließen, oder, wenn alles andere fehlschlägt, schreiben eine Batch-Datei, die das Programm aufruft und danach das Fenster offenhält und schieben die der IDE zum Debuggen unter. So oder so hat der Kram eigentlich absolut nichts im Hauptprogramm verloren.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
28.05.2008, 18:13 Uhr
9ball




Zitat von 0xdeadbeef:

...aber da wir C-Legacy-Funktionen eh nicht wirklich mögen...


wieso dieses?
--
one for all and all for one
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
28.05.2008, 18:49 Uhr
Randy




Zitat von 9ball:
[quote 0xdeadbeef]
...aber da wir C-Legacy-Funktionen eh nicht wirklich mögen...


wieso dieses?[/quote]

Soviel ich gelernt habe bindet der Compiler bei alten H-Dateien std nicht ein.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
28.05.2008, 18:56 Uhr
0xdeadbeef
Gott
(Operator)


C ist C, C++ ist C++. Die alten C-Funktionen fügen sich nicht gut in die umgebende Sprache ein. Am offensichtlichsten ist das bei den String-Funktionen - in C++ benutzt man da nicht mehr char* - aber auch sonst muss man beim Mischen der beiden Bibliotheken immer die Augen offenhalten. Wenn man new mit malloc und delete mit free mischt, kann man schon mal mit Code aufwachen, der mit einem Compiler funktioniert und dir mit dem nächsten um die Ohren fliegt. Im Fall von getchar muss man ggf. aufpassen, wie welche Streams woran getied sind (vgl. std::ios_base::sync_with_stdio).

Das Vermischen der beiden Bibliotheken (wie so häufig mit Legacy-Funktionalität) bringt einen Haufen Probleme mit sich, die man sich nicht einhandeln muss, weil die C++-Standardbibliothek die gleiche Funktionalität schon mitbringt.

Was Randy's Post angeht, die alten .h-Header sind im Standard in Anhang D (deprecated) vermerkt, was heißt, sie können in einem zukünftigen Standard entfernt werden. Wenn du tatsächlich Funktionen aus der C-Bibliothek benutzen musst (z.B. für Zufallszahlen, wenn du nicht boost.random benutzen willst), binde statt <stdlib.h> <cstdlib>, statt <time.h> <ctime> etc. ein. Dann sind die Symbole auch im std-Namespace. Zum Beispiel

C++:
#include <cstdlib>
#include <ctime>
#include <iostream>

int main() {
  std::srand(std::time(0));

  std::cout << std::rand() << std::endl;
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 28.05.2008 um 19:01 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
28.05.2008, 19:17 Uhr
Randy



Gut jetzt hats gefunzt!Aber nur bis int main,da ich einen Meta-cömpiler brauche.Is der in C/C ++ 5.5 enthalten oder muß ich den noch downloaden?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
28.05.2008, 19:27 Uhr
Randy



Danke!Aber ich hab das C/c++ erst am ltzten Samstag gekauft und hab erstmal bis zum einführendem Programmierkurs auswendig gelernt und muß also erstmal mit Hallo Welt und Whisky testen bevor ich weitergehe.Im Moment mach ich mir noch einige Gedanken darüber den Editor zu konfigurieren.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
28.05.2008, 19:41 Uhr
0xdeadbeef
Gott
(Operator)


Was für einen Meta-Compiler?
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
28.05.2008, 19:56 Uhr
Randy



Hat sich erledigt!Jetzt häng ich aber bei int main,wie deklariere ich ?

/*Hallo Welt.cpp*/
#include<std,h>
kompillieren!

Und jetzt hängts der Balken is rot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: