Anfang: Wer findet den kleinen Fehler?
-
Dyvone schrieb:
Was ja nur 5x Hello World! schreiben soll, aber er meckert wieder rum:
Zähl' noch mal nach.
Dyvone schrieb:
Und wo ist main bitte mehrfach definiert?
Irgendwo in deinem Projekt...
-
Du hast vermutlich mehrere Dateien mit einer main-Funktion in einem Projekt.
-
Dyvone schrieb:
Ich mag diese unpräzise Errormeldung "first defined here|" nicht.
Was bitte ist daran unpräzise? Ganz klare Aussage: Zuerst hier definiert, dann (s. o.) hier redefiniert. Es heißt übrigens Fehlermeldung.
Außerdem wirst du dich wohl damit abfinden müssen. Das hat nichts mit Codeblocks zu tun, sondern ist die Ausgabe vom GCC.
-
Oh mann oh mann oh manno mann.
Sorry Leute. Habe gerade eben voll auf dem Schlauch gestanden. Hab nicht mitgedacht, als ich alle sourecodes in ein projekt gelegt habe...
Danke
-
Benutze einfach keine IDE, die Dinger sind wie Krebs für Neulinge.
-
Du meinst nur mit der Konsole??
-
wenn du magst, kannst du mit vim, GCC und Valgrind/GDB komplett in der BASH arbeiten, dagegen spricht nichts. Aber es gibt auch gute GUI-Editoren wie z.B. gedit.
-
Ich hab noch nie mit Bash gearbeitet...
zurzeit benutze ich wie gesagt Code::Blocks.
ich hab noch eine Frage: Wie gebe ich einen String aus und dann eine Rechnung?
ich machs so, ist aber fehlerhaft:cout << "\nThe sum is: " << sum = a+b+c+d+e; cout << "\nThe average of the numbers is: " << average = sum/5;
Dabei sind die variablen oben definiert:
int a,b,c,d,e; int average(0), sum(0);
int a,b,c,d,e werden mit cin >> eingelesen.
mfG
-
Dyvone schrieb:
Ich hab noch nie mit Bash gearbeitet...
zurzeit benutze ich wie gesagt Code::Blocks.
ich hab noch eine Frage: Wie gebe ich einen String aus und dann eine Rechnung?
ich machs so, ist aber fehlerhaft:cout << "\nThe sum is: " << sum = a+b+c+d+e; cout << "\nThe average of the numbers is: " << average = sum/5;
Dabei sind die variablen oben definiert:
int a,b,c,d,e; int average(0), sum(0);
int a,b,c,d,e werden mit cin >> eingelesen.
mfG
Einfach in Klammern setzen. Shift-Operatoren werden vor dem Zuweisungsoperator ausgewertet.
-
Darf ich dich bitten, mir das etwas genauer zu erklären?
-
Hacker schrieb:
Shift-Operatoren werden vor dem Zuweisungsoperator ausgewertet.
Nö. Was
operator precedence
bedeutet, musst du nochmals nachlesen. :pcout << "\nThe sum is: " << (sum = a+b+c+d+e);
-
Danke. Jetzt funktioniert alles so wie ichs haben wollte.
http://www.amazon.de/Pearson-Education-GmbH-Einstieg-Anspruchsvolle/dp/3827361486
Könnt ihr das empfehlen als Lehrwerk?
-
Dyvone schrieb:
Darf ich dich bitten, mir das etwas genauer zu erklären?
Natürlich
Shift-Operatoren sind
<<
,>>
,<<=
und>>=
. Sie werden vor dem Zuweisungsoperator (=) ausgewertet und haben sozusagen eine höhere Rangfolge. Aus diesem Grund muss der Ausdruck in Klammern, da nur so zuerst der Zuweisungsoperator und dann der Shift-Operator ausgewertet wird.Wenn du den Ausdruck nicht in Klammern setzt, steht schlussendlich (!) folgendes da:
std::cout = a;
o.ä. was natürlich nicht geht, da der Zuweisungsoperator für std::ostream oder Basisklassen nicht überladen wurde - aber ich schweife ab.
-
Dyvone schrieb:
Danke. Jetzt funktioniert alles so wie ichs haben wollte.
http://www.amazon.de/Pearson-Education-GmbH-Einstieg-Anspruchsvolle/dp/3827361486
Könnt ihr das empfehlen als Lehrwerk?
Nein.
-
Schade. Ich lerne gern durch Zuhöhren. Aber lesen ist auch nicht schlecht, eig. sogar noch produktiver.
Könnt ihr mir das ewiggroße Buch "C++ von A bis Z" empfehlen?
Es hat alleine schon 104 Seiten Grundlagen...
-
Dyvone schrieb:
Könnt ihr das empfehlen als Lehrwerk?
Nein, kann ich nicht. Was ich dir empfehlen kann, ist: http://www.amazon.de/Der-Programmierer-Professionell-anwenden-Lösungen/dp/3446426914/ref=pd_sim_sbs_sw_9
Allerdings ist die Lektüre nicht gerade für faule Leute gedacht, man muss sich eng mit dieser Lektüre befassen, dass man alles gut versteht und mitkommt.Hacker schrieb:
Sie werden vor dem Zuweisungsoperator (=) ausgewertet und haben sozusagen eine höhere Rangfolge.
Nein, die
operator precedence
bestimmt nur, welche Operanden ein Operator an sich bindet. Das hat wirklich nichts mit einer Auswertungsrangfolge zu tun. Wann welcher Operand ausgewertet wird, ist undefiniert.Dyvone schrieb:
Könnt ihr mir das ewiggroße Buch "C++ von A bis Z" empfehlen?
Nein, absolut nicht. Das ist das schlechteste C++ Buch schlechthin.
-
Gugelmoser schrieb:
Dyvone schrieb:
Könnt ihr das empfehlen als Lehrwerk?
Nein, kann ich nicht. Was ich dir empfehlen kann, ist: http://www.amazon.de/Der-Programmierer-Professionell-anwenden-Lösungen/dp/3446426914/ref=pd_sim_sbs_sw_9
Allerdings ist die Lektüre nicht gerade für faule Leute gedacht, man muss sich eng mit dieser Lektüre befassen, dass man alles gut versteht und mitkommt.Die Grundlagen kann man sich eigentlich problemlos im Internet aneignen, nach einigem Üben würde ich dann noch
Scott Meyers – Effektiv C++
programmieren empfehlen
-
Ki schrieb:
Die Grundlagen kann man sich eigentlich problemlos im Internet aneignen
Nein..
-
Hacker schrieb:
Ki schrieb:
Die Grundlagen kann man sich eigentlich problemlos im Internet aneignen
Nein..
Doch..
-
Dyvone schrieb:
Schade. Ich lerne gern durch Zuhöhren. Aber lesen ist auch nicht schlecht, eig. sogar noch produktiver.
Durch Zuhoeren kann man nicht viel lernen, schon deshalb, weil keine Pause zum Nachdenken bleibt und der Stoff einfach runtergerasselt wird. Lesen ist da viel besser. Aber, man muss das Gelesene auch verarbeiten, d.h. immer wieder Selbsttests machen, kl. Programme schreiben um zu sehen, ob der Stoff verstanden ist. Ausserdem festigt man das Gelesene in dem Moment, wo man schreibt (Assoziation). Daher tippe ich z.B. auch Beispielprogramme aus Buechern grundsaetzlich selbst, anstatt sie von der Buch-CD einzulesen.
Dyvone schrieb:
Könnt ihr mir das ewiggroße Buch "C++ von A bis Z" empfehlen?
Wenn Du der englischen Sprache maechtig bist, kann ich waermstens (da momentan selbst in Benutzung) dieses empfehlen: