Archiv verlassen und diese Seite im Standarddesign anzeigen : cpp - cout
ich hagb ein kleines Problem...
hier mal der Source
#include <iostream>
int main()
{
cout << "Hello World!\n";
return 0;
}
gcc sagt das:
[giuly@localhost cpp]$ gcc -o hello2 hello2.cpp
hello2.cpp: In function `int main()':
hello2.cpp:4: `cout' undeclared (first use this function)
hello2.cpp:4: (Each undeclared identifier is reported only once for each
function it appears in.)
was is da falsch?
erstens, du versuchst c++ code mit dem c compiler zu kompilieren.
gcc ist für c und g++ für c++
und zweitens, bitte namespaces benutzen ! ;)
(zwar bei 2.9x nicht notwendig, aber ab 3.xx schon)
die ganzen standard bibliotheken liegen im namspace std
hier EINE möglichkeit (man kann auch using ... benutzen)
#include <iostream>
int main()
{
std::cout << "Hello World!"<<std::endl;
return 0;
}
gruss
Arthur
is der gcc nicht für C, C++, Java und was weiß ich nicht noch alles?
tuxipuxi
12-05-2003, 13:48
hi,
der gcc ist die Gnu compiler collection.
es hat ein gcc-cpp was fuer die c++ kompilierung zustaendig ist.
der binaryname ist c++.
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World!" << endl;
return 0;
}
Oder du schreibst die using-Zeile hin, dann kannst du dir die zusätzlichen std:: sparen.
anda_skoa
12-05-2003, 14:56
Original geschrieben von tuxipuxi
der gcc ist die Gnu compiler collection.
Ich glaube dann schreibt man es in Großbuchstaben, also GCC.
Klein geschrieben ist es der C Compiler.
es hat ein gcc-cpp was fuer die c++ kompilierung zustaendig ist.
der binaryname ist c++.
g++
c++ ist meistens nur ein Link, für Unix Makefiles ohne autoconf/automake
Ciao,
_
peschmae
12-05-2003, 15:33
wer hatte eigentlich die grässliche Idee mit
cout << "Bla"
in C++ :confused:
ich find das grässlich.
MfG Peschmä
jwebworks
13-05-2003, 07:04
Ist optisch nicht sehr ansprechend, oder? :D
LinuxDev
13-05-2003, 08:12
nun - ausser das da das Semikolon fehlt siehts doch eigentlich ganz gut aus oder? ;)
peschmae
13-05-2003, 08:25
naja ich find
System.out.println("Bla");
mit semikolon :D
doch viel ansprechender und vor allem logischer
MfG Peschmä
LinuxDev
13-05-2003, 08:32
und das ist was? C++ oder uralt C? keine ahnung...
anda_skoa
13-05-2003, 09:40
Original geschrieben von LinuxDev
und das ist was? C++ oder uralt C? keine ahnung...
Java
Aber ich finde die C++ Schreibweise sieht mehr nach Stream aus.
Der Unterschied ist aber erst bei mehrern Teilen gegeben.
int i = 5;
cout << "abc" << i << "abc" < endl;
in Java
System.out.println("abc" + i + "abc");
Ich glaube da wird i in einen String umgewandelt und zwei mal eine Stringkonkatention gemacht.
Damit man das selber Verhalten wie in C++ erreicht, müsste man schreiben
System.out.print("abc");
System.out.print(String.valueOf(i));
System.out.println("abc");
Ciao,
_
LinuxDev
13-05-2003, 10:13
HI
also wenn man das so sieht - mir is die C++ Schreibweise viel lieber ;)
muha
man hat sich halt gegen das überladen von operatoren bei java entschieden,
hat ja alles seine vor- und nachteile
gruss
Arthur
peschmae
13-05-2003, 11:54
ok, wenn man s als stream betrachtet, ists schon gar nicht mehr so schlimm :D
System.out.print(i);
geht übrigens auch
MfG Peschmä
tuxipuxi
13-05-2003, 12:31
Original geschrieben von anda_skoa
Ich glaube dann schreibt man es in Großbuchstaben, also GCC.
Klein geschrieben ist es der C Compiler.
g++
c++ ist meistens nur ein Link, für Unix Makefiles ohne autoconf/automake
Ciao,
_
*arg*,
ich hoffe das du mir glaubst das "c++" ein rechtschreibfehler war und ich g++ meinte :) ... so doof bin ich ja nicht.
GCC scheinst du recht zu haben.
anda_skoa
13-05-2003, 14:12
Original geschrieben von peschmae
ok, wenn man s als stream betrachtet, ists schon gar nicht mehr so schlimm :D
Als was soll man einen Stream denn sonst betrachten?
System.out.print(i);
geht übrigens auch
Stimm, mein Fehler.
Ciao,
_
peschmae
13-05-2003, 14:54
als nix anderes, (wie sollte man auch :p)
was ich sagen wollte: ich wusste gar nicht, dass man damit mehrere sachen aus geben kann (meine C++ - Exkurse waren nur recht kurz)
MfG Peschmä
peschmae
13-05-2003, 18:05
hab nachgeschaut: bei meiner einzigen ernsthaften C++ - App (Fltk Soundrecorder, zeitgesteuert mit on-the fly mp3lame/ogg - encoding) habe ich immer
FILE - deskriptoren bzw popen/fwrite zum öffnen/schreiben benutzt
und natürlich printf() für Stringausgabe
kann man denn mit dem << und < - Zeugs auch in "normale" Dateien schreiben/lesen?
Spricht was gegen die C-Funktionen (das werden popen/fwrite und so wohl sein)?
und wenn wir schon dabei sind: ist Thinking in C++ ein gutes Buch (ups, sollte plural sein ;-)) um C++ zu lernen? (Nur so nebenbei zum Nachschlagen, ich glaube nicht, dass ich von Java abkommen werde)
MfG Peschmä
anda_skoa
13-05-2003, 18:18
Original geschrieben von peschmae
kann man denn mit dem << und < - Zeugs auch in "normale" Dateien schreiben/lesen?
Natürlich.
Das ist wie in Java: das Ziel bzw, die Quelle des Streams ist völlig egal.
Spricht was gegen die C-Funktionen (das werden popen/fwrite und so wohl sein)?
Operator overloading und die dadurch enstehende Typsicherheit.
Bei C Funktionen kann man praktisch nur char* Puffer lesen/schreiben.
Außerdem ist es wie gesagt unabhängig vom IO Ziel des Streams.
Ein Stream ist eben eine Abstraktion.
und wenn wir schon dabei sind: ist Thinking in C++ ein gutes Buch (ups, sollte plural sein ;-)) um C++ zu lernen? (Nur so nebenbei zum Nachschlagen, ich glaube nicht, dass ich von Java abkommen werde)
Ich kenn das Buch nicht, aber die "Thinking in ..." Reihe ist normaleweise schon gut.
Ciao,
_
und wenn wir schon dabei sind: ist Thinking in C++ ein gutes Buch (ups, sollte plural sein ;-)) um C++ zu lernen? (Nur so nebenbei zum Nachschlagen, ich glaube nicht, dass ich von Java abkommen werde)
ich habe sowohl das java wie auch das c++ buch gesehen ,
und halte sie für ziemlich gut, man muss aber sagen dass es
sich nicht um bücher für wirkliche anfänger handelt, es geht
doch relativ schnell ziemlich zu sache;) aber dafür werden auch
viele interessante themen behandelt, zb. das nutzen von pattern,
optimierung usw.
gruss
Arthur
ps.
sollte es doch noch jemand nicht wissen,
beide bücher sind in der digitalen form (pdf) frei erhältlich.
peschmae
15-05-2003, 11:12
naja, ich finde html eigentlich wichtiger, da PDF zur Darstellung langsamer ist und tabbed browsing extrem praktisch ist
MfG Peschmä
Original geschrieben von peschmae
naja, ich finde html eigentlich wichtiger, da PDF zur Darstellung langsamer ist und tabbed browsing extrem praktisch ist
MfG Peschmä
Hast insofern recht, dass es die bücher auch als html gibt,
aber der rest ist geschmacksache :)
ich kann selber nicht über geschwindikeitsprobleme klagen, ausserdem drucke ich lieber aus pdfs
als aus html.
gruss
Arthur
peschmae
15-05-2003, 14:15
du druckst die TIJ/TIC - Bücher aus !?!?
das ist ja sogar mit einem Laserdrucker noch teurer als kaufen!
MfG Peschmä
das hab ich nicht behauptet,
ich halte nicht viel davon etwas auzudrucken was ich vielleicht nur einmal
lese, aber einzelne abschnitte die man immer wieder mal braucht wie zb. über stl,
warum nicht ?
wollte nur sagen, wenn drucken dann doch lieber pdf.
gruss
Arthur
Ist man eigentlich out wenn man den gcc 2.95 braucht? :)
Nein, im Ernst. Ich habe gehört, dass die gcc 3.x's ziemlich viel sch**** machen und da dachte ich mir dass ich lieber bei meinem altem bleib. Hat es irgendwelche Vorteile wenn man wechselt?
Original geschrieben von SeCa
Ist man eigentlich out wenn man den gcc 2.95 braucht? :)
Nein, im Ernst. Ich habe gehört, dass die gcc 3.x's ziemlich viel sch**** machen und da dachte ich mir dass ich lieber bei meinem altem bleib. Hat es irgendwelche Vorteile wenn man wechselt?
3.2 scheint doch ziemlich stabil zu sein,
ein wichtiger vorteil / nachteil;) ist dass es sich strikt an den iso c++ standard
hält, was aber bei einem wechsel von 2.9x auf 3.x leider meistens extra arbeit bedeutet:)
ansonsten wird er wohl besser optimieren, schneller compilieren? usw.
2.9x wird langsam aber sicher sterben.
gruss
Arthur
peschmae
16-05-2003, 09:20
ich denke auch, tempo war schon immer ein gutes argument :D
ausserdem wird der GCJ immer besser :D :D
und die grösseren Distributionen sind ja schon umgestiegen
MfG Peschmä
anda_skoa
16-05-2003, 09:31
Original geschrieben von peschmae
und die grösseren Distributionen sind ja schon umgestiegen
Da geht es vordringlich um die neue ABI, vorallem weil erwartet wird, dass sie über einige Jahre stabil bleiben wird und möglicherweise auch von Non-GCC Compilern benutzt wird.
AFAIK tut das der icc auch.
Ciao,
_
peschmae
16-05-2003, 10:00
jau, bei c solls zumindest schon funktionieren
bei c++ ist das zeugs irgendwie (noch?) nicht kompatibel (mit intels compiler)
MfG Peschmä
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.