Wo ist der Fehler??



  • Ich bin grade am Lernen von C++ mit einem Tutorial, und ich scheitere an der Aufgabe I von 2.A.

    Ganz grob zusammengefasst soll man in der Aufgabe ein Programm schreiben :).
    Auf jeden Fall bekomm ich beim kompilieren meiner Arbeit immer einen Fehler:

    Compiling...
    cons.cpp
    d:\cons\cons.cpp(24) : fatal error C1010: unexpected end of file while looking for precompiled header directive
    Error executing cl.exe.

    Hier der Code:

    #include <cstdio>
    using std::printf ;
    
    int multiplie (int a, int b)
    {
    	return(a*b);
    }
    
    int main()
    {
    	int exit;
    	int *array = new int [3];
    	array[0] = 4;
    	array[1] = 6;
    	array[2] = multiplie(array[0],array[1]);
    	printf("%i\n",array[2]);
    	delete [] array;
    	return 0;
    }
    

    Ich hoffe mir kann jemand sagen wo das Problem ist, und wie ich es lösen kann.
    Ich danke mich schonmal für die Antworten 👍

    *EDIT*
    Ich benutz Visual C++ 6 zum schreiben und compilen.



  • #include <cstdio>
    
    int multiplie (int a, int b)
    {
        return(a*b);
    }
    
    int main()
    {
        int *array = new int [3];
        array[0] = 4;
        array[1] = 6;
        array[2] = multiplie(array[0],array[1]);
        printf("%i\n",array[2]);
        delete [] array;
        return 0;
    }
    

    unten waren doppelt klammer
    printf ist kein element von std
    exit war unötig /nur eine warnung



  • Wo hast du das denn her? printf() sollte man in C++ vermeiden, das ist C.
    Versuchs mal so:

    #include <iostream>
    using namespace std;
    
    int multiplie (int a, int b)
    {
        return(a*b);
    }
    
    int main()
    {
        int exit;
        int *array = new int [3];
        array[0] = 4;
        array[1] = 6;
        array[2] = multiplie(array[0],array[1]);
        cout << array[2] << "\n";
        delete [] array;
        return 0;
    }
    


  • elise schrieb:

    printf ist kein element von std

    In Standard-C++ mit c-Headern schon.



  • Das mit dem "int exit;" hatte ich vergessen zu entfernen, am besten ignorieren.

    Hmm, in dem Tutorial stand in einem Beispielprogramm dieses using std::printf auch drin. Wenn man das wegmacht, gehts! *freu*
    Mit der C++ Version von Taurin gehts auch.

    Thx@all das ihr mir geholfen habt!
    Wenn ichs schaff close ich den Thread.

    *EDIT*

    Ich schaffs ned o_O



  • Bashar schrieb:

    elise schrieb:

    printf ist kein element von std

    In Standard-C++ mit c-Headern schon.

    da habe ich mich vom visual studio linken lassen:

    error C2039: 'printf' : Ist kein Element von 'std'
    


  • elise schrieb:

    da habe ich mich vom visual studio linken lassen:

    So lange Du Dich nicht vom Visual Studio kompilieren lässt :D;)

    SCNR,
    MTE.



  • Im C++ Standard gibt es 2 gültige stdio headers:

    • <cstdio>
    • <stdio.h>

    Beim ersten wird alles im std Namensraum declariert. Beim zweiten in den globalen Namesraum. Für den Rest sind sie equivalent. Oft ist <cstdio> folgendermassen implementiert:

    namespace std{
    #include<stdio.h>
    }
    

    Ob VC6 jetzt aber standard gerecht ist, ist eine ganz andere Frage.



  • 🙄
    sagte bashar ja schon ... aber doppelt hält besser 😉


Anmelden zum Antworten