Erster versuch mit strömen.
-
So hab mal versuch die ausgaben der 3 for schleifen in eine txt zukopieren mit den strömen aber irgend wie klppt das nicht so ganz:
#include<iostream> #include<fstream> using namespace std; int main() { ifstream FileIn("Crap.cpp"); cout<<"Die Dezimalzahlen:\n";//Dezimalzahlen schleife beginnt for(int Dezi=0;Dezi<255;Dezi++)//inden () wird die variable(dezi mit wert 0 erstellt,dann abfrage ob dezi kleiner als 255, wenn dezi kleiner ist mit dezi++ um den wert eins erhöhen. { cout<<Dezi<<"\n";//Die Dezimalzahlwerte ausgeben(da dezi bei jedem durchgang um 1 erhöht wird steigt der wert automatisch } cout<<"\nDie Hexadezimalzahlen:\n"; for(int hexa=0;hexa<255;hexa++)//Wie bei dezi schleife { cout<<hex<<hexa<<"\n";//wie bei dezi nur das der befehl cout<<hex die zahl im hexadezimal ausgibt } cout<<"\nDie Oktalzahlen\n";//wie bei dezi schleife for(int okta=0;okta<255;okta++) { cout<<oct<<okta<<"\n";//der cout<<oct befehl ist wie beim hexa nur das es dann den oktalenzahlen system ausgibt anstelle von dezimal oder hexa. } ofstream FileOut("C:\\Guppe_C.txt"); system("PAUSE"); }Was mach ich falsch?
Danke im v o r r a u s
-
#include<iostream> #include<fstream> using namespace std; int main() { // Deklariert eine Variable vom Typ Inputfilestream und öffnet // die vorgegebene Datei. ifstream FileIn("Crap.cpp"); // Ob das Öffnen funktioniert hat wird nicht geprüft. // Ist ja auch nicht notwendig denn die Variable wird // im weiteren Programmverlauf ja nicht mehr verwendet. (???) cout<<"Die Dezimalzahlen:\n";//Dezimalzahlen schleife beginnt for(int Dezi=0;Dezi<255;Dezi++)//inden () wird die variable(dezi mit wert 0 erstellt,dann abfrage ob dezi kleiner als 255, wenn dezi kleiner ist mit dezi++ um den wert eins erhöhen. { cout<<Dezi<<"\n";//Die Dezimalzahlwerte ausgeben(da dezi bei jedem durchgang um 1 erhöht wird steigt der wert automatisch } // Ausgabe von Zahlen auf Standard-Out cout<<"\nDie Hexadezimalzahlen:\n"; for(int hexa=0;hexa<255;hexa++)//Wie bei dezi schleife { cout<<hex<<hexa<<"\n";//wie bei dezi nur das der befehl cout<<hex die zahl im hexadezimal ausgibt } // Ausgabe von Zahlen auf Standard-Out cout<<"\nDie Oktalzahlen\n";//wie bei dezi schleife for(int okta=0;okta<255;okta++) { cout<<oct<<okta<<"\n";//der cout<<oct befehl ist wie beim hexa nur das es dann den oktalenzahlen system ausgibt anstelle von dezimal oder hexa. } // Ausgabe von Zahlen auf Standard-Out // Deklariert eine Variable vom Typ Outputfilestream und öffnet // die vorgegebene Datei. ofstream FileOut("C:\\Guppe_C.txt"); // Ob das Öffnen funktioniert hat wird nicht geprüft. // Ist ja auch nicht notwendig denn die Variable wird // im weiteren Programmverlauf ja nicht mehr verwendet. (???) system("PAUSE"); }Warum sollte diese Programm wohl aus irgendeiner Datei was Lesen bzw.
in eine andere Datei was Schreiben wenn du mit den beiden "Datei"-Variablen
absolut nichts tust, schon garnicht aus ihnen liest oder in sie schreibst.

Ich empfehle ein gutes Tutorial, siehe Links rechts oben auf dieser
Seite
-
Mit denn << und >> Operatoren kannst du auch die Datei beschreiben oder aus ihr lesen (funktioniert im Grunde wie bei cout), indem du einfach die Datei öffnest wirst du net in sie die Zahlen schreiben.
Vergiss nicht das schliessen der Datei, geht mit datei.close();
-
Ich weiß jetzt nicht ganz genau was dein Programm machen soll (okta,hexa,dezi??)
aber du schreibst und liest ja auch gar nichts ein/aus. Mit cout schreibst du nur auf dem Bildschirm, der Konsole.Schau dir mal folgendes an. Vorallem das Beispiel sollte dir weiterhelfen.
http://www.cppreference.com/cppio/constructors.htmlSähe dann ungefähr(!) so aus:
#include<iostream> #include<fstream> using namespace std; int main() { ofstream fout("C:\\Guppe_C.txt"); fout<<"Die Dezimalzahlen:\n";//Dezimalzahlen schleife beginnt for(int Dezi=0;Dezi<255;Dezi++)//inden () wird die variable(dezi mit wert 0 erstellt,dann abfrage ob dezi kleiner als 255, wenn dezi kleiner ist mit dezi++ um den wert eins erhöhen. { fout<<Dezi<<"\n";//Die Dezimalzahlwerte ausgeben(da dezi bei jedem durchgang um 1 erhöht wird steigt der wert automatisch } fout<<"\nDie Hexadezimalzahlen:\n"; for(int hexa=0;hexa<255;hexa++)//Wie bei dezi schleife { fout<<hex<<hexa<<"\n";//wie bei dezi nur das der befehl cout<<hex die zahl im hexadezimal ausgibt } fout<<"\nDie Oktalzahlen\n";//wie bei dezi schleife for(int okta=0;okta<255;okta++) { fout<<oct<<okta<<"\n";//der cout<<oct befehl ist wie beim hexa nur das es dann den oktalenzahlen system ausgibt anstelle von dezimal oder hexa. } system("PAUSE"); }mfg.
PS: V o r r a u s mit einem r. Also Voraus.
edit: Ups. DIe zwei Beiträge vor mir waren noch nicht da, als ich meinen verfasst hab. Die waren wohl schneller.
-
Jo danke habs jetzt verstanden
mfg @all 
-
effe_eichelt schrieb:
Vergiss nicht das schliessen der Datei, geht mit datei.close();
Es ist zwar odentlich, wenn man nach Gebrauch immer aufräumt.

ABER
Ein offener Filestream-Variable wird beim Verlassen des
Gültigkeitsbereich automatisch geschlossen.
-
Und wie würde einprogramm aussehen da eine datei einliest und dann auf dem bildschirm mit
cout<<datei.txt;ausgibt?
-
MartinMilbret schrieb:
Und wie würde einprogramm aussehen da eine datei einliest und dann auf dem bildschirm mit
cout<<datei.txt;ausgibt?
Wie meinst du das? Du möchtest den Inhalt einer Datei zuerst einlesen und selbigen danach nach stdout schreiben? Wenn ja: Siehe C++-FAQ. Thread: Ströme o.ä..
Gruß Caipi