Anfängerproblem



  • pastorek schrieb:

    ...der Code ist komplett und mit Copy/Paste eingefügt!

    Und du bist dir sicher, dass du mit einem C++-Compiler übersetzt und <fstream> nicht einfach nur ein wertloser Dummy ist? Denn der Code läuft durch, Und wenn du jetzt nicht noch einmal den kompletten Code hier Copypastest und du auch die obigen Ansätze nicht bestätigen kannst, dann kann man dir bis auf "Compiler und Laufzeitlib neuinstallieren" nicht helfen.



  • ..hier ist nochmal der komplette Code:

    [code="cpp"]
    #include <iostream>
    #include <fstream>
    #include "stdafx.h"

    int main(int argc, char* argv[])
    {
    std::ofstream myfile;
    myfile.open("example.csv");
    myfile << "This is the first cell in the first column.\n";
    myfile << "a,b,c,\n";
    myfile << "c,s,v,\n";
    myfile << "1,2,3.456\n";
    myfile << "semi;colon";
    myfile.close();
    return 0;
    }



  • Jetzt gibt es mehrere Möglichkeiten:
    1. Deine Standardbibliothek ist kaputt und definiert std::ofstream nicht - denn der Compiler meckert ja nicht über fehlende Header, sondern nur über fehlende Symbole.
    2. In stdafx.h ist irgendwas kaputt, was dafür sorgt, dass main fehlerhaft geparst wird - entferne mal die include -Direktive und probiere es noch mal.
    3. Der Code, den du gepostet hast, stimmt immer noch nicht mit dem Code überein, den du versuchst zu kompilieren.

    Denn bei mir, mit einem funktionierendem Compiler und einer funktionierenden Standardlib, funktioniert es:

    gcc-Version 6.3.1 20170306 (GCC)
    

    bis auf die stdafx.h -Zeile.

    EDIT: Ich sollte dazusagen, dass wenn es sich um ein Konfigurationsproblem handelt, dies nichts mit C++ zu tun hat. Sondern halt mit deiner Konfiguration. Und die kennen wir ja nicht.



  • ...erstmal besten Dank für die Antworten.

    Der Code stimmt!

    Muss jetzt erstmal schluß machen und melde mich später wieder.

    Gruß

    Berni



  • pastorek schrieb:

    ...der Code ist komplett und mit Copy/Paste eingefügt!

    Glaub ich nicht! Dein Compiler meckert in Zeile 7, in deinem Code steht std::ofstream in Zeile 5.



  • Hallo zusammen,

    ich habe jetzt Visual Studio 2017 wieder heruntergeworfen und dann Visual Studio2017 Enterprise neu installiert, was auch ohne Fehlermeldung gelaufen ist.

    Jetzt versuche ich eine einfache Konsolenanwendung zu kompilieren und bekomme folgende Meldungen:

    E1696 Die Datei “Quelle“ kann nicht geöffnet werden: “stdio.h“
    E1696 Die Datei “Quelle“ kann nicht geöffnet werden: “tchar.h“
    C1083 Datei (Include) kann nicht geöffnet werden: “stdio.h“
    No such file or Directory.

    In den Headerdateien erscheinen: stdafx.h und tchar.h

    Ich denke mal die Standardbibliothek ist kaputt gegangen. Oder irgendwas anderes was ich falsch mache? Ich habe schon herumgegoogelt wie man sie erneuern könnte, aber nichts gescheites gefunden.

    Wenn jemand eine Idee hat, bin ich immer dankbar.

    Gruß

    Berni

    Hiere ist der Code (einfache Konsolenanwendung ohne etwas hizuzufügen):

    [code]
    #include "stdafx.h"

    int main()
    {
    return 0;
    }



  • wieso inkludierst du stdafx.h? die brauchst du da doch nicht
    und es sieht auch nicht aus wie ein generiertes Beispiel vom Projekterstellen



  • Schmeiß stdafx.h raus und schalte in den Projekteinstellungen "vorkompilierte Header benutzen" aus.



  • ....bringt irgendwie alles nichts.

    Ich denke mal, dass der Pfad für die vorkompilierte Header nicht stimmt (No such file or Directory).

    Weiss jemand, wo man diesen Pfad eingeben kann?

    Gruß

    Berni



  • Wenn du das

    Schlangenmensch schrieb:

    Schmeiß stdafx.h raus und schalte in den Projekteinstellungen "vorkompilierte Header benutzen" aus.

    gemacht hast, macht das

    pastorek schrieb:

    ....bringt irgendwie alles nichts.

    Ich denke mal, dass der Pfad für die vorkompilierte Header nicht stimmt (No such file or Directory).

    Weiss jemand, wo man diesen Pfad eingeben kann?

    keinen Sinn.

    Wie auch immer: du hast kein Problem mit C++ sondern eines mit deiner IDE => falsches Forum.



  • Weißt du eigentlich wofür du stdafx.h hast? Das ist ein vorkompilierter Header, der die Kompilierung scheinbar etwas verschnellern soll. Ist soon Microsoft-Ding. Jedenfalls muss der vorkompilierte Header immer der erste Header sein, der in deiner Sourcen-Datei inkludiert werden soll, sonst klappet halt net.

    http://stackoverflow.com/a/16712894



  • Erstelle dein Projekt mal so:

    1. File --> New --> Project
    2. Visual C++ und Empty Project auswählen und Projektname eingeben --> OK klicken
    3. Rechtsklick auf Source Files im Projekt-Baum-Fenster --> Add --> New Item --> C++ File (.cpp) --> OK
    4. Füge deinen Quellcode ohne stdafx.h ein

    #include <iostream> 
    #include <fstream>
    
    int main( int argc, char* argv[ ] )
    {
    	std::ofstream myfile;
    	myfile.open( "example.csv" );
    	myfile << "This is the first cell in the first column.\n";
    	myfile << "a,b,c,\n";
    	myfile << "c,s,v,\n";
    	myfile << "1,2,3.456\n";
    	myfile << "semi;colon";
    	myfile.close( );
    	return 0;
    }
    

    5. F5 drücken --> Yes bestätigen

    Das wars, sollte problemlos gehen.



  • ...ich habe das Windows 10 SDK nachinstalliert und nun funktioniert es.

    Gruß

    Berni