Mehrere Dateien mit for schleife erstellen und in sie reinschreiben
-
@Swordfish C++, aber wir haben auch nicht den Unterschied gelernt
-
@imaunicornk sagte in Mehrere Dateien mit for schleife erstellen und in sie reinschreiben:
i<<"..."<<"endl; kam eine Fehlermeldung.
Was für eine Fehlermeldung bekommst Du denn? (Copy & Paste)
... und wie interpretierst Du die?
-
@Swordfish
error C2297: "<<": Ungültig, da der rechte Operand vom Typ "const char [4]" ist
error C2563: Listen der formalen Parameter stimmen nicht überein
error C2568: "<<": Auflösung der Funktionsüberladung nicht möglichdas hier sind die Fehler. Also es hat bestimmt mit diesem char feld zu tun, aber ich kanns nicht deuten.
-
@imaunicornk Welchen Typ hat
i
? Was macht der Operator<<
für Integer? Warum geht das mit"..."
als Operand nicht? Was willst Du mit dieser Zeile erreichen?Woher hast Du
fopen()
undfclose()
wenn Du C++ gelernt hast?
-
@Swordfish
Okay das mit dem i hab ich jetzt glaub gecheckt. i ist ja nur der Name der Datei. Also muss statt i wahrscheinlich name[i] oder so stehen, oder?
Aber das mit dem fopen() und fclose(), da habe ich keine Ahnung.
Sowas kam leider nicht in unserer Vorlesung dran.
-
@imaunicornk sagte in Mehrere Dateien mit for schleife erstellen und in sie reinschreiben:
Okay das mit dem i hab ich jetzt glaub gecheckt. i ist ja nur der Name der Datei.
Alter, jetzt mal ernsthaft. Welchen Typ hat
i
?
-
@Swordfish
Also wie gesagt ich habe keine Ahnung von irgendwas.
Wenn du etwas weißt, bitte hilf mir, wenn nicht lass es.
Und bitte hör auf so respektlos von oben herab zu antworten.
-
Hey Brudi, ich will Dir schon helfen, aber nachdenken und lernen musst Du schon selbst. Wo wird
i
deklariert? Da findest Du auch den Typ.
-
@Swordfish
also i wird doch in der schleife deklariert, dann muss es den Typ int haben, oder?
-
Die Verwirrung kommt offenbar daher, dass du weder C noch C++ richtig gelernt hast (bzw. dir ein Mischmasch beigebracht wurde) und du daher jetzt weder das eine noch das andere beherrscht. Ist leider ein häufiges Problem - schlechtes Lehrmaterial
Operatorüberladung, also mit
<<
schreiben, geht nur in C++. Zum Schreiben in Dateien müssen diese mit C++-Mitteln geöffnet werden. Guckst du: https://en.cppreference.com/w/cpp/header/iostream - du öffnest die Datei zum Schreiben mitofstream datei("dateiname");
(siehe Beispiel ganz unten auf https://en.cppreference.com/w/cpp/io/basic_ofstream)Du benutzt FILE* und fopen. Guckst du hier: https://en.cppreference.com/w/c/io/fopen
Das sind C-Funktionen. Ja, die kann man in C++ auch benutzen, aber dann eben nicht weiter mit C++-Mitteln arbeiten.Entscheide dich für eine Sprache und lerne diese dann idiomatisch. Wenn du C++ lernen willst, dann nimm
std::string
(nichtchar[irgendeine_laenge]
),std::ofstream
usw. Wenn du C lernen willst, dann guckst du hier: https://en.cppreference.com/w/c/io und schreibst z.B. mitfprintf
in eine Datei.
-
@imaunicornk sagte in Mehrere Dateien mit for schleife erstellen und in sie reinschreiben:
@Swordfish
also i wird doch in der schleife deklariert, dann muss es den Typ int haben, oder?Ja! Aber kannst du mit << in einen int hineinschreiben? Ergibt das Sinn?
-
Si Senor!! Also ist
i
eine Ganzzahl die von 0 bis 3 geht. Jetzt erkennst Du wahrscheinlich warumi<<"..."<<endl;
keinen Sinn macht.
Weiter.
Vergiss
fopen()
undfclose()
. In C++ verwendet man Streams: <fstream> (und dann passt auchoperator<<()
).
Den Dateinamen kannst Du Dir mit einem Stringstream (<sstream>) zusammenbasteln.
-
alles klar, vielen Dank!!!
Dann versuch ich es mal
-
Immer gerne. Komm wieder wenn Du was hast.