Anfängerproblem
-
Hallo,
ich fange gerade wieder an C++ zu programmieren und habe Visual Studio 2017.
Wenn ich folgenden Code eingebe
[code="cpp"]
#include <iostream>
#include <fstream>
int main( int argc, char* argv[] )
{
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;
}bekomme ich folgende Meldung:
ofstream ist nicht definiert
ofstream nicht declarierter Bezeichner
Syntaxfehler myfile ..Ich habe bestimmt irgendwas vergessen (Header, Lib...)
Kennt sich jemand aus?
Gruß
Berni
-
Toll.
Steigst in C++ ein, siehst eine Fehlermeldung, und anstatt darüber nachzudenken, oder den Google zu bemühen wie eine vernunftbegabte Person, rotzt du sie lieber direkt hier rein.
Für
ofstream
reicht's nicht mehr bei der derzeitigen Wirtschaftslage, oder was?EDIT: für den Fall, dass es echt zu subtil ist und du einfach mit dem Kopf darauf geschlagen werden musst, weil du nicht mal in der Lage bist, Überschriften zu lesen ...
std::ofstream
. std::!
-
...ja besten Dank für die nette Antwort!
Nu' habe ich
std::ofstream myfile;
eingegeben, jetzt sagt er aber: ofstream ist kein Element von std
Und was soll das jetzt wieder?
-
Code zeigen! Außerdem vollständige Fehlermeldung. Und bitte beides per Copy&Paste, nicht abtippen!
-
Dein Code kompiliert bei mir durch. Folglich zeigst du uns nicht den Code, der deinen Fehler verursacht.
Was das soll, weißt daher nur du. Oder auch nicht.
-
...der Code ist komplett und mit Copy/Paste eingefügt!
Hier sind die Fehlermeldungen (auch mit Copy/Paste):
Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
Fehler C2039 "ofstream": Ist kein Element von "std" Test4 c:\users\pastorek\c plus plus\test4\test4\test4.cpp 7Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
Fehler C2065 "ofstream": nichtdeklarierter Bezeichner Test4 c:\users\pastorek\c plus plus\test4\test4\test4.cpp 7Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
Fehler C2146 Syntaxfehler: Fehlendes ";" vor Bezeichner "myfile" Test4 c:\users\pastorek\c plus plus\test4\test4\test4.cpp 7Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
Fehler C2065 "myfile": nichtdeklarierter Bezeichner Test4 c:\users\pastorek\c plus plus\test4\test4\test4.cpp 7Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
Fehler C2228 Links von ".open" müssen sich in einer Klasse/Struktur/Union befinden Test4 c:\users\pastorek\c plus plus\test4\test4\test4.cpp 8
-
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 definiertstd::ofstream
nicht - denn der Compiler meckert ja nicht über fehlende Header, sondern nur über fehlende Symbole.
2. Instdafx.h
ist irgendwas kaputt, was dafür sorgt, dassmain
fehlerhaft geparst wird - entferne mal dieinclude
-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.
-
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