Visual C++ Express 2008 - Code ausführen nicht möglich, #include Fehler!



  • simon.gysi schrieb:

    1. #include "stdafx.h" muss immer an erster Stelle stehen !

    oder du stellst beim erstellen eines neuen projektes ein, dass er keine vorkompilierten header verwenden soll



  • Was bringt mir denn der vorkompilierte Header für Vorteile? Dieses Vorgehen ist mir komplett unbekannt.
    Jetzt hab ich die neuen Header verwendet, wie es aber ausschaut sind nicht alle Header in der neuen Version (ohne .h) verfügbar. Zum Beispiel hat er bei der conio.h und bei math.h gemeckert.
    Jetzt bekomme ich auch die Meldungen, dass cout und cin nicht deklariert wären. Was mach ich denn hier falsch?

    EDIT:
    Okay durch einfügen von using namespace std; sind alle Fehler weg. Jedoch erkennt er den Befehl clrscr() nicht. Wenn ich jetzt aber #include <stdlib.h> einbinde und clrscr() durch system("cls"); ersetze funktioniert es.
    Ersetzt die #include <stdlib.h> die #include <conio.h>?

    Gruß xAmp



  • Besorg dir doch mal vernünftige und vorallem AKTUELLE C++-Literatur! iostream.h ist noch von vor 1998 und hat nichts mit ISO-C++ zutun! Und nur das versteht der MSVC2008 (bzw. seit MSVC2003 ist das so) Wo hast du denn C++ gelernt???

    Und conio.h ist kein ISO-C++-Header, deshalb muß der weiterhin conio.h heißen. Weißt du überhaupt was du da tust? Und warum du das .h weg nehmen solltest? Mir scheint, dir ist nicht klar, warum das .h weg mußte, sonst hättest du es nicht auch bei conio.h entfernt. Und die anderen geben hier total unnütze Hilfe. ".h weg nehmen" ist keine ausreichende Erklärung, und man sieht wo es endet. Weißt du auch was Namespaces sind? Nein! Sonst würdest du keine Fehlermeldung bekommen, das cout und cin unbekannt sind.

    Aber sollen wir dir jetzt die Grundlagen aller Grundlagen beibringen, die in jedem HelloWorld-Programm drin sind? Das kanns nicht sein.

    Was hast du denn als Lehrmittel? Dann können wir dir sagen, was du dir besorgen mußt.



  • xAmp schrieb:

    Was bringt mir denn der vorkompilierte Header für Vorteile? Dieses Vorgehen ist mir komplett unbekannt.

    Damit werden Headers nicht immer neu kompiliert, sondern vom Compiler einmal gebaut und wieder benutzt. Dadurch lassen sich vorallem bei komplexen Projekten die Build-Zeiten verkürzen.



  • Und die anderen geben hier total unnütze Hilfe. ".h weg nehmen" ist keine ausreichende Erklärung, und man sieht wo es endet.

    Vielleicht war meine Erklärung nicht ausreichend, aber dass er die neuen Verisonen der Header Dateien verwenden soll ist korrekt und hat nichts mit "h-weglassen" zu tun.

    simon.gysi schrieb:

    1. #include "stdafx.h" muss immer an erster Stelle stehen !
    2. #include <iostream.h> und die anderen header sind deprecated. Sie sollten durch die neuen Versionen ersetzt werden. z.B. #include <iostream>

    -> Nach Schritt 2 sind die entsprechenden Typen und Funktionen im namespace std zu finden.

    Simon

    Simon



  • xAmp schrieb:

    ich hab von meinem Lehrer einige Zeilen C++ Code bekommen. Mit diesem Code sollen wir weiter arbeiten und einige Aufgaben lösen.

    So, habe das jetzt erst gelesen. Der Lehrer gehört erschlagen! Das ist aber mal typisch das Lehrkräfte (sowohl an allgemein bildenden Schulen als auch an Hochschulen (da nehmen die sich nichts)) ihr technisches Wissen seit Jahrzehnten nicht aufgefrischt haben. Er hat euch ungültigen C++-Code gegeben. Seit 1998 gibt es eine offizielle ISO-C++-Norm, die alleine offiziell gültig ist. Alles andere ist illegal und somit unterstützen alle aktuellen Compiler nur noch ISO-C++.

    Der Herr Lehrer soll mal seine alten Bücher über Bord werfen und sein Wissen auffrischen. Er hinkt 10 Jahre hinterher.



  • @ Artchi
    Tja so ist es halt wenn man von einem Lehrer zwanghaft C++ beigebracht wird. Ich versuch es mir ja gerade selber zu erläutern, sonst würde ich ja nicht fragen. Und wenn mein Lehrer an die 60 Jahre alt ist, dann vermittelt er eben noch den Stoff vor 1998, da kann ich leider nichts für und wissen kann ich es in meinem Lernstadium beim besten Willen nicht.



  • simon.gysi schrieb:

    Und die anderen geben hier total unnütze Hilfe. ".h weg nehmen" ist keine ausreichende Erklärung, und man sieht wo es endet.

    Vielleicht war meine Erklärung nicht ausreichend, aber dass er die neuen Verisonen der Header Dateien verwenden soll ist korrekt und hat nichts mit "h-weglassen" zu tun.

    Wenn jemand in diesem Forum mit .h-Headern ankommt, ist das ein Anzeichen dafür, das er nichts von ISO-C++ weiß. Somit ist ihm nicht geholfen, wenn man ihm nur sagt, das er was anderes benutzen soll. Es ist ihm/ihr erst geholfen, wenn man klipp und klar sagt "Lern das offizielle C++! Sonst brauchen wir hier garnicht weiter diskutieren!". Denn es wird unendlich Nachfolgefragen geben, die in jedem C++-Buch auf den ersten Seiten hinreichend erklärt werden. Das ist nicht der Sinn dieses Forums. Und man sieht ja, das er es trotzdem nicht geschafft hat. (kennt den std-Namespace nicht)



  • Nur der Vollständigkeit halber:

    Statt <math.h> nimm dann <cmath> und statt <stdlib.h> <cstdlib>.

    Sonst nimmt er die C-Header was zu Problemen führen kann. Die mit vorangestelltem C sind... nun, kompatibel mit C++. Die Funktionen liegen dann auch im Namespace std.



  • xAmp schrieb:

    @ Artchi
    Tja so ist es halt wenn man von einem Lehrer zwanghaft C++ beigebracht wird. Ich versuch es mir ja gerade selber zu erläutern, sonst würde ich ja nicht fragen. Und wenn mein Lehrer an die 60 Jahre alt ist, dann vermittelt er eben noch den Stoff vor 1998, da kann ich leider nichts für und wissen kann ich es in meinem Lernstadium beim besten Willen nicht.

    OK, sehr löblich das du es lernen willst. Welche Literatur benutzt du denn dafür? Dieses Forum alleine wird dich nicht weiter bringen. Dafür ist die Materie zu hart.

    Mein Tip:
    C++ Primer - ein sehr gutes C++-Buch und auch für den Umfang an Seiten sehr günstig. Kann man auch bei Amazon oder lokale Buchhandlung kaufen.



  • Unser Lehrer verwendet kein Buch. Ich hab mich selber nach einer Literatur umgeschaut und hab mir vorerst mal "C++ Objektorientiertes Programmieren von Anfang an" von Helmut Erlenkötter geholt. Wie du siehst bin ich willig mir Wissen anzueignen, daher trifft es mich schon hart gleich von professionellen Programmieren so hart angegangen zu werden. Für mich ist der Start im Augenblick nicht wirklich leicht.
    Naja sei es drum, schönen Mittag noch.

    Gruß xAmp



  • Nicht persönlich nehmen. Bin selbst nicht lange im Forum und habe in der kurzen Zeit die merkwürdigsten und teilweise auch nervigsten Anfragen miterlebt. Anfängerfehler können daher schon recht nervig sein, wenn sie hätte vermieden werden können. Da reagiert hier so mancher allergisch.



  • xAmp! Sorry falls es zu heftig war. Habe dir aber immerhin zum Schluss noch nen Tip gegeben. Ist ja nicht so, das ich dich im Regen hab stehen lassen.

    Dein Buch ist übrigens nicht so toll, es ist doch schon sehr C-lastig. Aber immer noch besser als nichts.



  • Ne passt soweit schon, bin auch über den Buchtipp sehr dankbar. Ich werd mich jetzt mal umschauen wo ich das Buch günstig ordern kann, dann werden wir sehen wie schnell es in der C-Materie voran geht.
    Danke nochmals.

    Gruß xAmp



  • xAmp schrieb:

    Ne passt soweit schon, bin auch über den Buchtipp sehr dankbar. Ich werd mich jetzt mal umschauen wo ich das Buch günstig ordern kann, dann werden wir sehen wie schnell es in der C-Materie voran geht.
    Danke nochmals.

    Gruß xAmp

    Ja was den nun? C oder C++???



  • Hmpf, ja natürlich C++. 🤡


Anmelden zum Antworten