Compilerwill Programm einfach nicht erstellen. MS Visualc++ 2005



  • Wenn ich den einfachsten Code aus dem Buch abschreibe, oder auch beispiel Codes aus dem Internet kopiere, kommt immer eine Fehlermeldung:

    1>------ Erstellen gestartet: Projekt: Dies ist ein Cprogramm, Konfiguration: Debug Win32 ------
    1>Kompilieren...
    1>Dies ist ein Cprogramm.cpp
    1>c:\users\chris\documents\visual studio 2005\projects\dies ist ein cprogramm\dies ist ein cprogramm\dies ist ein cprogramm.cpp(5) : fatal error C1010: Unerwartetes Dateiende während der Suche nach dem vorkompilierten Header. Haben Sie möglicherweise vergessen, im Quellcode "#include "stdafx.h"" einzufügen?
    1>Das Buildprotokoll wurde unter "file://c:\Users\Chris\Documents\Visual Studio 2005\Projects\Dies ist ein Cprogramm\Dies ist ein Cprogramm\Debug\BuildLog.htm" gespeichert.
    1>Dies ist ein Cprogramm - 1 Fehler, 0 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

    Und der Code sieht wie folgt aus:

    #include <cstdio>

    int main()
    {
    printf("Dies ist ein C-Programm.");
    }

    Neulingstipps habe ich schon durchgelesen aber nichts dergleichen gefunden.
    Ich währe froh, wenn jemand mir helfen könnte.

    MFG Chris



    1. Damit es läuft musst du statt printf std::printf schreiben.
    2. Das ist C++ (siehe Headername).


  • EOutOfResources schrieb:

    1. Damit es läuft musst du statt printf std::printf schreiben.

    Wie kommst du auf soetwas?
    printf ist wie alle anderen C Library Funktionen auch im globalen Namensraum.

    Das Problem liegt hierbei nur dabei, dass prekompilierte Headerdateien eingestellt sind. Einfach in den Projekteinstellungen rauswerfen ...



  • Ok vielen dank. Ich glaube ich hol mir dann gleich ein neues gutes C++ Buch.
    Hast du vielleicht eine Empfehlung? 😉



  • Wurde dir ja schon genannt:
    1. Die IDE muss richtig eingestellt sein
    2.
    entweder so

    #include <cstdio>
    
    int main()
    {
       std::printf("Dies ist ein C-Programm.");
    }
    

    oder so

    #include <cstdio>
    using namespace std;
    
    int main()
    {
       printf("Dies ist ein C-Programm.");
    }
    

    Oder, wenn du den Microsoft-Weg gehen willst, wie dir der Compiler empfiehlt.

    Wie hiesst dein Buch? Auflage?

    MfG f.-th.



  • Ethon schrieb:

    Wie kommst du auf soetwas?
    printf ist wie alle anderen C Library Funktionen auch im globalen Namensraum.

    So ein Bullshit...



    1. Damit es läuft musst du statt printf std::printf schreiben.
    2. Das ist C++ (siehe Headername).

    Abgesehen davon hast du wahrscheinlich bei Projekt optionen vorkompilierten Header
    eingestellt.Falls du es noch nicht wusstest :
    der Header stdafx ist dazu da alle header dateien und sonstigen unübersichtlichen "Müll" in einem Paket zusammenzufassen , was sehr praktisch ist.
    Z.B.:

    stdafx.h :

    #ifndef STDAFX_H
    #define STDAFX_H
    
    #include <iostream>
    #include <Windows.h>
    #include <dos.h>
    #include <conio.h>
    #include <stdio.h>
    #include <strsafe.h>
    
    using namespace std;
    
    void eineFunktion(int x, int y);
    
    #endif
    // TODO: Hier auf zusätzliche Header, die das Programm erfordert, verweisen.
    

    main.cpp :

    #include "stdafx.h"
    
    main () {
    
    return lalala;
    }
    

    Wenn du das deaktivieren willst dan geh bei MSVC bei
    ---ProjektOptionen heißt auch "deinProjektname"-Eigenschaften
    Projekt->ProjektOptionen(oder Alt+F7)->KonfigurationsEigenschaften->C/C++->Vorkompilierte Header

    so nun kannst du in der ersten rubrick auswählen ➡

    Vorkompilierte Header nicht verwenden

    Hoffentlich hilft dir das
    😉

    mfg 7xCore



  • Das Buch habeich von meinem Vater.Istschon ziemlich alt es heißt: C Grundlagen Buch. Von gerhard willms. 1995.



  • ich wollte mich noch mal bedanken, für die vielen Antworten 😃
    Aber da anscheinend in meinem Buc nur veralterter Mist steht o.O, würde ich mir gerne ein neues Buch zulegen. Hat jmd gute Erfahrungen mit einem bestimmten Buch?


  • Mod

    Chris☆ schrieb:

    ich wollte mich noch mal bedanken, für die vielen Antworten 😃
    Aber da anscheinend in meinem Buc nur veralterter Mist steht o.O, würde ich mir gerne ein neues Buch zulegen. Hat jmd gute Erfahrungen mit einem bestimmten Buch?

    Was denn nun, C oder C++? C++ guckst du hier:
    http://www.c-plusplus.net/forum/251551

    Für C guck mal im C-Forum.

    Und für beide Sprachen gilt: Finger weg von Jürgen Wolf! Und durch die negative Assoziation mit diesem Autor besser auch vom Galileo-Verlag.



  • Was möchtest du denn lernen C oder C++?

    Zum Einstieg in C kann das Buch noch ausreichend sein. Aber es sollte auch Bücher geben die schon C99 erklären können.

    Wenn es C++ werden soll, dann ein anderes Buch nehmen.
    Die Frage nach einem "optimalen" Buch wurde hier schon oft gestellt und diskutiert. Ist auch von deinen Vorkenntnissen und Zeilen abhängig.
    Versuche mal die Suche hier im Forum 😉

    MfG f.-th.



  • nicht Zeilen -> Zielen 😡



  • EOutOfResources schrieb:

    Ethon schrieb:

    Wie kommst du auf soetwas?
    printf ist wie alle anderen C Library Funktionen auch im globalen Namensraum.

    So ein Bullshit...

    Zeig mir auch nur einen Compiler, der bei einem "#include <cstdio>" nicht printf in den globalen Namensraum zieht bevor du deine Fresse soweit aufreißt.
    MSVC macht es jedenfalls schon, und um den geht es hier gerade, oder etwa nicht?

    Und wenn du deine Glubscher aufmachst, siehst du sogar dass es keine Fehlermeldung wegen dem fehlenden "std::" gab, keine Ahnung wie du den Fehler reininterpretiert hast.



  • Ganz ruhig.
    Der Beitrag wurde doch hier im C++ erstellt
    und nicht in einer "Hersteller-Abteilung"

    Wenn Mircosoft da Sonderlösungen geht, müsste das ja eigentlich verschoben werden 😃
    Stop - mit Verschieben noch warten 😃 Der Beitragsersteller gibt vielleicht noch einen Hinweis wohin.

    Aber nun haben wir ja fast alle Varianten durch - ausser der Beitragsersteller wollte gar nicht C++ sondern C 😃


Log in to reply